Configuration options #1355
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: "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 }})) |