Skip to content

Standard tests

Standard tests #209

Workflow file for this run

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"