diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..80e87d8 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,63 @@ +name: CI + +# Trigger the workflow on push or pull request +on: + push: + branches: + - master + pull_request: + +# the `concurrency` settings ensure that not too many CI jobs run in parallel +concurrency: + # group by workflow and ref; the last slightly strange component ensures that for pull + # requests, we limit to 1 concurrent job, but for the master branch we don't + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.run_number }} + # Cancel intermediate builds, but only if it is a pull request build. + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +jobs: + # The CI test job + test: + name: ${{ matrix.gap-branch }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + gap-branch: + - master + - stable-4.13 + - stable-4.12 + - stable-4.11 + - stable-4.10 + - stable-4.9 + + steps: + - uses: actions/checkout@v4 + - uses: gap-actions/setup-gap@v2 + with: + GAPBRANCH: ${{ matrix.gap-branch }} + - uses: gap-actions/build-pkg@v1 + - uses: gap-actions/run-pkg-tests@v2 + - uses: gap-actions/run-pkg-tests@v2 + with: + only-needed: true + - uses: gap-actions/process-coverage@v2 + - uses: codecov/codecov-action@v4 + + # The documentation job + manual: + name: Build manuals + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: gap-actions/setup-gap@v2 + - uses: gap-actions/build-pkg-docs@v1 + with: + use-latex: 'true' + - name: 'Upload documentation' + uses: actions/upload-artifact@v4 + with: + name: manual + path: ./doc/manual.pdf + if-no-files-found: error