Standard tests #209
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Standard tests" | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| push: | |
| branches: | |
| - "main" | |
| - "stable-*.*" | |
| schedule: | |
| # Every day at 3:15 AM UTC | |
| - cron: '15 3 * * *' | |
| concurrency: | |
| # Group by workflow and ref; the last component ensures that for pull requests | |
| # we limit to one concurrent job, but for the main/stable branches we don't | |
| group: ${{ github.workflow }}-${{ github.ref }}-${{ (github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/heads/stable-')) || github.run_number }} | |
| # Only cancel intermediate pull request builds | |
| cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} | |
| jobs: | |
| standard: | |
| name: "${{ matrix.os }} / GAP ${{ matrix.gap-version }} / 64-bit" | |
| runs-on: "${{ matrix.os }}-latest" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - Ubuntu | |
| - macOS | |
| gap-version: | |
| - master | |
| - stable-4.15 | |
| - v4.14 | |
| - v4.13 | |
| - v4.12 | |
| configflags: | |
| - "--disable-hpcombi" | |
| include: | |
| - os: Windows | |
| gap-version: latest | |
| configflags: "--disable-fmt --disable-hpcombi" # to try and speed up compilation FIXME don't disable hpcombi | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: gap-actions/setup-cygwin@v2 | |
| if: ${{ runner.os == 'Windows' }} | |
| - name: "Install macOS dependencies" | |
| if: ${{ runner.os == 'macOS' }} | |
| run: brew install automake libtool | |
| # Setup ccache, to speed up repeated compilation of the same binaries | |
| # (i.e., GAP and the packages) | |
| - name: "Setup ccache" | |
| if: ${{ runner.os != 'Windows' }} | |
| uses: Chocobo1/setup-ccache-action@v1 | |
| with: | |
| update_packager_index: false | |
| override_cache_key: ${{ runner.os }}-${{ matrix.gap-version }}-64-${{ github.ref }} | |
| override_cache_key_fallback: ${{ runner.os }}-${{ matrix.gap-version }}-64 | |
| - name: "Install GAP" | |
| uses: gap-actions/setup-gap@v3 | |
| with: | |
| gap-version: ${{ matrix.gap-version }} | |
| - name: "Install necessary GAP package clones" | |
| shell: bash | |
| run: | | |
| for PKG in https://github.com/digraphs/digraphs; do | |
| PKGNAME=$(basename $PKG) | |
| # Delete any already-installed version of this package, to be safe | |
| rm -rf ${GAPROOT}/pkg/${PKGNAME}* | |
| git clone $PKG ${GAPROOT}/pkg/${PKGNAME} | |
| done | |
| - name: "Build necessary GAP packages" | |
| shell: bash | |
| run: | | |
| cd ${GAPROOT}/pkg | |
| ../bin/BuildPackages.sh --strict digraphs* io* orb* datastructures* profiling* | |
| - name: "Build Semigroups" | |
| uses: gap-actions/build-pkg@v2 | |
| with: | |
| CONFIGFLAGS: ${{ matrix.configflags }} | |
| - name: "Run Semigroups package's tst/teststandard.g" | |
| uses: gap-actions/run-pkg-tests@v4 | |
| - uses: gap-actions/process-coverage@v3 | |
| - uses: codecov/codecov-action@v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| fail_ci_if_error: ${{ runner.os != 'Windows' }} | |
| - name: "Run GAP's tst/testinstall.g" | |
| uses: gap-actions/run-pkg-tests@v4 | |
| if: ${{ runner.os != 'Windows' }} | |
| with: | |
| testfile: "ci/run-gap-testinstall.g" |