name: matrix (ubuntu, macos, windows) ctes on: push: paths-ignore: - docs/** - "**.md" - "**.markdown" branches: - master pull_request: paths-ignore: - docs/** - "**.md" - "**.markdown" - '**.yml' branches: - master env: BUILD_TYPE: Release concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: strategy: matrix: os: - ubuntu-latest - macos-latest - windows-latest runs-on: ${{ matrix.os }} steps: # checkout full depth of history. - uses: actions/checkout@v4 with: fetch-depth: 0 - 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 Linux/OSX CMake if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' shell: bash working-directory: ${{github.workspace}}/build run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DADD_G3LOG_UNIT_TEST=ON - name: Configure Windows CMake if: matrix.os == 'windows-latest' shell: cmd working-directory: ${{github.workspace}}/build run: ls && cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DADD_G3LOG_UNIT_TEST=ON .. - name: Build Linux/OSx working-directory: ${{github.workspace}}/build shell: bash run: cmake --build . --config $BUILD_TYPE - name: Test working-directory: ${{github.workspace}}/build shell: bash run: ctest -V - name: Fatal Exit Example Linux/OSX working-directory: ${{github.workspace}}/build if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' shell: bash run: ./g3log-FATAL-sigsegv || true && echo -e "\n\nverifying SIGSEGV existed in stackdump\n\n\n\n" && cat /tmp/*3log*FATAL*.log && cat /tmp/g3log*FATAL*.log | grep "SIGSEGV" - name: Fatal Exit Example Windows working-directory: ${{github.workspace}}/build if: matrix.os == 'windows-latest' shell: bash run: ./Release/g3log-FATAL-sigsegv.exe || true && echo -e "\n\nverifying SIGSEGV - EXCEPTION_ACCESS_VIOLATION existed in stackdump\n\n\n\n" && cat *3log*FATAL*.log && cat *3log*FATAL*.log | grep "EXCEPTION_ACCESS_VIOLATION"