| name: KernelShark CI (CMAKE) |
| |
| on: |
| push: |
| schedule: |
| - cron: '0 15 * * THU' |
| |
| env: |
| # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) |
| BUILD_TYPE: Release |
| |
| jobs: |
| build: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - name: Install Dependencies |
| shell: bash |
| run: | |
| sudo apt-get update |
| sudo apt-get install build-essential git cmake libjson-c-dev -y |
| sudo apt-get install freeglut3-dev libxmu-dev libxi-dev -y |
| sudo apt-get install fonts-freefont-ttf -y |
| sudo apt-get install qt6-base-dev qt6-scxml-dev libboost-all-dev -y |
| sudo apt-get install libtraceevent-dev libtracefs-dev libtracecmd-dev trace-cmd -y |
| |
| - 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 ${{runner.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: ${{runner.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 -DCMAKE_C_FLAGS_RELEASE="-Werror" |
| |
| - name: Build |
| working-directory: ${{runner.workspace}}/build |
| shell: bash |
| # Execute the build. You can specify a specific target with "--target <NAME>" |
| run: cmake --build . --config $BUILD_TYPE |
| |
| - name: Test |
| working-directory: ${{runner.workspace}}/build |
| shell: bash |
| # Execute tests defined by the CMake configuration. |
| run: ctest -C $BUILD_TYPE |
| |
| - name: Upload Artifacts |
| if: ${{ always() }} |
| uses: actions/upload-artifact@v2 |
| with: |
| name: artifacts-download |
| path: ${{runner.workspace}}/build/Testing/ |