Create cmake.yml to run tests on github actions
This commit is contained in:
		
							parent
							
								
									ba47b5d35e
								
							
						
					
					
						commit
						9c4f8dfc97
					
				
							
								
								
									
										77
									
								
								.github/workflows/cmake.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								.github/workflows/cmake.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,77 @@
 | 
			
		||||
name: CMake
 | 
			
		||||
 | 
			
		||||
on: [push]
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
 | 
			
		||||
  BUILD_TYPE: Release
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    # The CMake configure and build commands are platform agnostic and should work equally
 | 
			
		||||
    # well on Windows or Mac.  You can convert this to a matrix build if you need
 | 
			
		||||
    # cross-platform coverage.
 | 
			
		||||
    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
 | 
			
		||||
    runs-on: ubuntu-20.04
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
    - name: Install catch2
 | 
			
		||||
      run: |
 | 
			
		||||
        curl -L https://github.com/catchorg/Catch2/archive/v2.13.4.tar.gz -o catch2.tar.gz
 | 
			
		||||
        tar xvf catch2.tar.gz
 | 
			
		||||
        cd Catch2-2.13.4
 | 
			
		||||
        cmake -Bbuild -H. -DBUILD_TESTING=OFF
 | 
			
		||||
        sudo cmake --build build/ --target install
 | 
			
		||||
 | 
			
		||||
    - name: Fetch external libs
 | 
			
		||||
      run: |
 | 
			
		||||
        # Download
 | 
			
		||||
        curl http://www.un4seen.com/files/bass24-linux.zip -o bass_linux.zip
 | 
			
		||||
        curl http://www.un4seen.com/files/bassopus24-linux.zip -o bassopus_linux.zip
 | 
			
		||||
        curl -L https://github.com/discordapp/discord-rpc/releases/download/v3.4.0/discord-rpc-linux.zip -o discord_rpc_linux.zip
 | 
			
		||||
        curl -L https://github.com/Skycoder42/QtApng/releases/download/1.1.0-5/build_gcc_64_5.12.0.tar.xz -o apng.tar.xz
 | 
			
		||||
        # Extract
 | 
			
		||||
        unzip bass_linux.zip
 | 
			
		||||
        unzip bassopus_linux.zip
 | 
			
		||||
        unzip discord_rpc_linux.zip
 | 
			
		||||
        tar -xvf apng.tar.xz
 | 
			
		||||
        # Copy
 | 
			
		||||
        cp x64/libbass.so lib
 | 
			
		||||
        cp x64/libbassopus.so lib
 | 
			
		||||
        cp discord-rpc/linux-dynamic/lib/libdiscord-rpc.so lib
 | 
			
		||||
        cp gcc_64/plugins/imageformats/libqapng.so lib
 | 
			
		||||
 | 
			
		||||
    - name: Install Qt5
 | 
			
		||||
      run: sudo apt update -y && sudo apt install -y qt5-default
 | 
			
		||||
 | 
			
		||||
    - name: Create Build Environment
 | 
			
		||||
      # Some projects don't allow in-source building, so create a separate build directory
 | 
			
		||||
      # We'll use this as our working directory for all subsequent commands
 | 
			
		||||
      run: cmake -E make_directory ${{github.workspace}}/build
 | 
			
		||||
 | 
			
		||||
    - name: Configure CMake
 | 
			
		||||
      # Use a bash shell so we can use the same syntax for environment variable
 | 
			
		||||
      # access regardless of the host operating system
 | 
			
		||||
      shell: bash
 | 
			
		||||
      working-directory: ${{github.workspace}}/build
 | 
			
		||||
      # Note the current convention is to use the -S and -B options here to specify source
 | 
			
		||||
      # and build directories, but this is only available with CMake 3.13 and higher.
 | 
			
		||||
      # The CMake binaries on the Github Actions machines are (as of this writing) 3.12
 | 
			
		||||
      run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE
 | 
			
		||||
 | 
			
		||||
    - name: Build
 | 
			
		||||
      working-directory: ${{github.workspace}}/build
 | 
			
		||||
      shell: bash
 | 
			
		||||
      # Execute the build.  You can specify a specific target with "--target <NAME>"
 | 
			
		||||
      run: cmake --build . --config $BUILD_TYPE --target test
 | 
			
		||||
 | 
			
		||||
    - name: Copy libs to test directory
 | 
			
		||||
      run: cp ${{github.workspace}}/lib/* ${{github.workspace}}/build/test/
 | 
			
		||||
 | 
			
		||||
    - name: Test
 | 
			
		||||
      working-directory: ${{github.workspace}}/build/test
 | 
			
		||||
      shell: bash
 | 
			
		||||
      # Skipping tests for bass since no audio device
 | 
			
		||||
      run: |
 | 
			
		||||
        ./test ~[bass]
 | 
			
		||||
@ -4,7 +4,7 @@ cmake_policy(SET CMP0076 NEW) # silence warning
 | 
			
		||||
 | 
			
		||||
project(AttorneyOnline)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_STANDARD 20)
 | 
			
		||||
set(CMAKE_CXX_STANDARD 17)
 | 
			
		||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_AUTOMOC ON)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user