From c9f58a2b4ae6812324dfedaaa5441f47c95c297b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kjell=20Hedstr=C3=B6m?= Date: Sun, 19 May 2024 11:10:22 -0600 Subject: [PATCH] Update ctest.yml for matrix run --- .github/workflows/ctest.yml | 117 ++++++++++++++---------------------- 1 file changed, 46 insertions(+), 71 deletions(-) diff --git a/.github/workflows/ctest.yml b/.github/workflows/ctest.yml index 878e26e1..3b5fdbc0 100644 --- a/.github/workflows/ctest.yml +++ b/.github/workflows/ctest.yml @@ -1,90 +1,65 @@ +--- name: ci/action ctest - on: push: paths-ignore: - docs/** - - '**.md' - - '**.markdown' - branches: [ master ] + - "**.md" + - "**.markdown" + branches: + - master pull_request: paths-ignore: - docs/** - - '**.md' - - '**.markdown' - branches: [ master ] - + - "**.md" + - "**.markdown" + branches: + - master env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release - -# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow -# if you have to do a quick fix and the CI is already running your new commit will kill already -# going processes before starting new ones concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true - jobs: build: strategy: matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: + - ubuntu-latest + - macos-latest + - windows-latest runs-on: ${{ matrix.os }} - - # 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-latest - #runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v3 - - - name: Run Linux Build - if: matrix.os == 'ubuntu-latest' - run: echo "Ubuntu Latest" > release_ubuntu - - - name: Run Mac Build - if: matrix.os == 'macos-latest' - run: echo "MacOS Latest" > release_mac - - - name: Run Windows Build - if: matrix.os == 'windows-latest' - run: echo "Windows Latest" > release_windows - - - 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 -DADD_G3LOG_UNIT_TEST=ON - - - name: Build - working-directory: ${{github.workspace}}/build - shell: bash - # Execute the build. You can specify a specific target with "--target " - run: cmake --build . --config $BUILD_TYPE - - - name: Test - working-directory: ${{github.workspace}}/build - shell: bash - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C $BUILD_TYP - - - name: Fatal Exit Example - working-directory: ${{github.workspace}}/build - if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' || matrix.os == 'windows-latest' - shell: bash - # hacky / crude and effective - run: ./g3log-FATAL-sigsegv || true && echo -e "\n\n=======================\n\nverifying SIGSEGV existed in stackdump\n\n\n\n" && cat /tmp/g3log*FATAL*.log | grep "SIGSEGV" + - uses: actions/checkout@v3 + - name: Run Linux Build + if: matrix.os == 'ubuntu-latest' + run: echo "Ubuntu Latest" > release_ubuntu + - name: Run Mac Build + if: matrix.os == 'macos-latest' + run: echo "MacOS Latest" > release_mac + - name: Run Windows Build + if: matrix.os == 'windows-latest' + run: echo "Windows Latest" > release_windows + - name: Create Build Environment + run: cmake -E make_directory ${{github.workspace}}/build + - name: Configure CMake + shell: bash + working-directory: ${{github.workspace}}/build + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE + -DADD_G3LOG_UNIT_TEST=ON + - name: Build + working-directory: ${{github.workspace}}/build + shell: bash + run: cmake --build . --config $BUILD_TYPE + - name: Test + working-directory: ${{github.workspace}}/build + shell: bash + run: ctest -C $BUILD_TYP + - name: Fatal Exit Example + working-directory: ${{github.workspace}}/build + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' || matrix.os == + 'windows-latest' + shell: bash + run: ./g3log-FATAL-sigsegv || true && echo -e + "\n\n=======================\n\nverifying SIGSEGV existed in + stackdump\n\n\n\n" && cat /tmp/g3log*FATAL*.log | grep "SIGSEGV"