name: Test on: push: pull_request: schedule: # Weekly, at 5:45 AM on Friday (somewhat randomly chosen). - cron: '45 5 * * 5' workflow_dispatch: jobs: cygwin: strategy: # It's much easier to re-run as few jobs as possible: fail-fast: false matrix: hardlinks: [0, 1] runs-on: windows-latest name: 'Cygwin: hardlinks${{ matrix.hardlinks }}' defaults: run: shell: pwsh steps: - name: Checkout uses: actions/checkout@v3 - name: Install Cygwin uses: egor-tensin/setup-cygwin@v4 - name: Set up MinGW id: setup uses: ./ with: cygwin: 1 cc: 1 hardlinks: '${{ matrix.hardlinks }}' - name: Build foo.exe run: | & '${{ steps.setup.outputs.gxx }}' -std=c++14 -o foo foo.cpp - name: Run foo.exe uses: ./.github/actions/run-foo - name: Check cc/c++ uses: ./.github/actions/check-cc if: matrix.hardlinks - name: Check cc/c++ uses: ./.github/actions/check-cc-cygwin if: '!matrix.hardlinks' test: strategy: # It's much easier to re-run as few jobs as possible: fail-fast: false matrix: platform: [x86, x64] os: [ubuntu-18.04, ubuntu-20.04, ubuntu-22.04, ubuntu-latest, windows-2019, windows-2022, windows-latest] runs-on: '${{ matrix.os }}' name: 'Test: ${{ matrix.os }} / ${{ matrix.platform }}' defaults: run: shell: pwsh steps: - name: Checkout uses: actions/checkout@v3 - name: Clean up PATH uses: egor-tensin/cleanup-path@v3 if: runner.os == 'Windows' - name: Set up MinGW id: setup uses: ./ with: platform: '${{ matrix.platform }}' cc: 1 - name: Build foo.exe run: | & '${{ steps.setup.outputs.gxx }}' -std=c++14 -o foo foo.cpp - name: Run foo.exe uses: ./.github/actions/run-foo if: runner.os == 'Windows' - name: Check cc/c++ uses: ./.github/actions/check-cc different_versions: strategy: matrix: version: ['8.1.0', '12.2.0'] runs-on: windows-latest name: 'Version: ${{ matrix.version }}' defaults: run: shell: pwsh steps: - name: Checkout uses: actions/checkout@v3 - name: Clean up PATH uses: egor-tensin/cleanup-path@v3 - name: Set up MinGW id: setup uses: ./ with: version: '${{ matrix.version }}' - name: Build foo.exe run: | & '${{ steps.setup.outputs.gxx }}' -std=c++14 -o foo foo.cpp - name: Run foo.exe uses: ./.github/actions/run-foo