Skip to content

Configuration options #1355

Configuration options

Configuration options #1355

name: "Configuration options"
on:
workflow_dispatch:
pull_request:
push:
branches:
- "main"
- "stable-*.*"
schedule:
# Every day at 4:15 AM UTC
- cron: "15 4 * * *"
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:
enable-debug:
name: "Enable debug"
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v7
- name: "Setup ccache"
uses: Chocobo1/setup-ccache-action@v1
with:
update_packager_index: false
override_cache_key: ${{ runner.os }}-$GAPBRANCH-64-${{ github.ref }}
override_cache_key_fallback: ${{ runner.os }}-$GAPBRANCH-64
- name: "Install GAP"
uses: gap-actions/setup-gap@v3
- name: "Build Semigroups"
uses: gap-actions/build-pkg@v3
with:
configflags: --enable-debug
- name: "Run Semigroups package's tst/teststandard.g"
uses: gap-actions/run-pkg-tests@v4
enable-hpcombi:
name: "Enable HPCombi"
runs-on: "ubuntu-latest"
steps:
- uses: actions/checkout@v7
# Don't use ccache, since sometimes this fails when using -mavx
- name: "Install GAP"
uses: gap-actions/setup-gap@v3
- name: "Build Semigroups"
uses: gap-actions/build-pkg@v3
with:
configflags: --enable-hpcombi
- 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@v7
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: "Run GAP's tst/testinstall.g"
uses: gap-actions/run-pkg-tests@v4
with:
testfile: "ci/run-gap-testinstall.g"
with-external-libsemigroups:
name: "External libsemigroups"
runs-on: "ubuntu-latest"
env:
PKG_CONFIG_PATH: "/home/runner/micromamba/envs/libsemigroups/lib/pkgconfig:/home/runner/micromamba/envs/libsemigroups/share/pkgconfig/"
LD_LIBRARY_PATH: "/home/runner/micromamba/envs/libsemigroups/lib"
DO_NOT_DOWNLOAD_LIBSEMIGROUPS: 1 # prevents prerequisites.sh
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v7
- name: "Install conda environment from environment.yml . . ."
uses: mamba-org/setup-micromamba@v3
with:
environment-file: environment.yml
cache-environment: true
- name: 'Activate "libsemigroups" environment . . .'
run: micromamba activate libsemigroups
- name: "Setup ccache"
uses: Chocobo1/setup-ccache-action@v1
with:
update_packager_index: false
override_cache_key: ${{ runner.os }}-$GAPBRANCH-64-${{ github.ref }}
override_cache_key_fallback: ${{ runner.os }}-$GAPBRANCH-64
- run: mkdir libsemigroups
- name: "Install GAP"
uses: gap-actions/setup-gap@v3
- name: "Build Semigroups"
uses: gap-actions/build-pkg@v3
with:
configflags: --with-external-libsemigroups
- name: "Run Semigroups package's tst/teststandard.g"
uses: gap-actions/run-pkg-tests@v4
with-external-libsemigroups-and-flags:
name: "External libsemigroups + ${{ matrix.flag.value }}"
runs-on: "ubuntu-latest"
strategy:
fail-fast: false
matrix:
# Store a list of possible flags, and the expected result when ./configure is called with
# --with-external-libsemigroups and <flag.value>.
flag:
- { value: "--enable-hpcombi", configure-result: 1 }
- { value: "--disable-hpcombi", configure-result: 1 }
- { value: "--enable-backward", configure-result: 1 }
- { value: "--disable-backward", configure-result: 1 }
- { value: "--enable-eigen", configure-result: 1 }
- { value: "--diable-eigen", configure-result: 1 }
- { value: "--with-external-backward", configure-result: 1 }
- { value: "--with-external-fmt", configure-result: 1 }
- { value: "--with-external-eigen", configure-result: 1 }
- { value: "--enable-popcnt", configure-result: 1 }
- { value: "--disable-popcnt", configure-result: 1 }
- { value: "--enable-clzll", configure-result: 1 }
- { value: "--disable-clzll", configure-result: 1 }
- { value: "--enable-debug", configure-result: 0 }
env:
PKG_CONFIG_PATH: "/home/runner/micromamba/envs/libsemigroups/lib/pkgconfig:/home/runner/micromamba/envs/libsemigroups/share/pkgconfig/"
LD_LIBRARY_PATH: "/home/runner/micromamba/envs/libsemigroups/lib"
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v7
- name: "Install conda environment from environment.yml . . ."
uses: mamba-org/setup-micromamba@v3
with:
environment-file: environment.yml
cache-environment: true
- name: "Install GAP"
uses: gap-actions/setup-gap@v3
- name: "Check Semigroups' ./configure ${{ matrix.flag.configure-result == 0 && 'passes' || 'fails' }}"
run: |
./autogen.sh
./configure --with-gaproot=$GAPROOT --with-external-libsemigroups ${{ matrix.flag.value }}
(( $? == ${{ matrix.flag.configure-result }}))