From 3e506f6cd8f4f4514e6995032ba2472aad864720 Mon Sep 17 00:00:00 2001 From: "James D. Mitchell" Date: Thu, 4 Aug 2022 16:56:04 +0100 Subject: [PATCH] ci: fiddle somemore --- .github/workflows/ci.yml | 23 ++---------- .github/workflows/lint.yml | 6 +-- .github/workflows/manual.yml | 5 ++- .github/workflows/release.yml | 70 +++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index aa4b417de..a6a83102b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,11 @@ -name: "GAP" +name: "Standard tests" on: workflow_dispatch: pull_request: push: + branches: + - "master" + - "stable-*.*" schedule: # Every day at 3:15 AM UTC - cron: '15 3 * * *' @@ -11,8 +14,6 @@ jobs: test: name: "${{ matrix.gap-branch }} / ${{ matrix.os }} / ${{ matrix.ABI }}-bit" runs-on: "${{ matrix.os }}-latest" - # Don't run this twice for PRs from branches in the same repository - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) }} strategy: fail-fast: false matrix: @@ -34,12 +35,6 @@ jobs: steps: - uses: actions/checkout@v2 - - name: "Checking if this is a release candidate?" - id: is-release-candidate - run: | - if [[ ${{ github.event_name }} == 'pull_request' && x${{ github.event.pull_request.head.ref }} =~ ^xrc-v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo ::set-output name=match::true - fi - name: "Install dependencies (macOS only!)" if: ${{ runner.os == 'macOS' }} run: brew install automake @@ -77,13 +72,3 @@ jobs: uses: gap-actions/run-pkg-tests@v2 with: GAP_TESTFILE: "ci/run-gap-testinstall.g" - - name: "Run GAP's tst/teststandard.g (in branch rc-v*.*.* only!)" - if: steps.is-release-candidate.outputs.match == 'true' - uses: gap-actions/run-pkg-tests@v2 - with: - GAP_TESTFILE: "ci/run-gap-teststandard.g" - - name: "Run GAP's tst/testbugfix.g (in branch rc-v*.*.* only!)" - if: steps.is-release-candidate.outputs.match == 'true' - uses: gap-actions/run-pkg-tests@v2 - with: - GAP_TESTFILE: "ci/run-gap-testbugfix.g" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fce3b8d84..8a7b542de 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -3,6 +3,9 @@ on: workflow_dispatch: pull_request: push: + branches: + - "master" + - "stable-*.*" schedule: # Every day at 3:10 AM UTC - cron: '10 3 * * *' @@ -10,8 +13,6 @@ on: jobs: gaplint: runs-on: ubuntu-latest - # Don't run this twice for PRs from branches in the same repository - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) }} steps: - uses: actions/checkout@v2 - name: "Install dependencies . . ." @@ -21,7 +22,6 @@ jobs: cpplint: runs-on: ubuntu-latest - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) }} steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 237a067b3..8b20388e3 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -3,6 +3,9 @@ on: workflow_dispatch: pull_request: push: + branches: + - "master" + - "stable-*.*" schedule: # Every day at 3:33 AM UTC - cron: '33 3 * * *' @@ -11,8 +14,6 @@ jobs: manual: name: "compile and upload manual" runs-on: ubuntu-latest - # Don't run this twice for PRs from branches in the same repository - if: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) }} steps: - uses: actions/checkout@v2 - name: "Install TeX Live" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..d6826a0cb --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,70 @@ +name: "Extended tests" +on: + workflow_dispatch: + pull_request: + paths: + - ".VERSION" + +jobs: + test: + name: "${{ matrix.gap-branch }} / ${{ matrix.os }} / ${{ matrix.ABI }}-bit" + runs-on: "${{ matrix.os }}-latest" + strategy: + fail-fast: false + matrix: + os: + - ubuntu + gap-branch: + - master + ABI: + - 64 + - 32 + + include: + # macOS job + - gap-branch: master + # to ensure datastructures>= v0.2.6 + pkgs-to-clone: "datastructures" + os: macos + ABI: 64 + + steps: + - uses: actions/checkout@v2 + - name: "Install dependencies (macOS only!)" + if: ${{ runner.os == 'macOS' }} + run: brew install automake + # 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-branch }}-${{ matrix.ABI }}-${{ github.ref }} + override_cache_key_fallback: ${{ runner.os }}-${{ matrix.gap-branch }}-${{ matrix.ABI }} + - name: "Install GAP and clone/compile necessary packages" + uses: gap-actions/setup-gap@v2 + env: + # We don't understand why this is necessary. Hopefully it can be + # removed in the fullness of time. + LDFLAGS: "-pthread" + with: + # digraphs included here to ensure version >=1.5.0 + GAP_PKGS_TO_CLONE: "digraphs/digraphs ${{ matrix.pkgs-to-clone }}" + GAP_PKGS_TO_BUILD: "digraphs io orb datastructures profiling" + GAPBRANCH: ${{ matrix.gap-branch }} + ABI: ${{ matrix.ABI }} + - name: "Build Semigroups" + uses: gap-actions/build-pkg@v1 + with: + ABI: ${{ matrix.ABI }} + CONFIGFLAGS: --disable-hpcombi + - name: "Run GAP's tst/teststandard.g" + uses: gap-actions/run-pkg-tests@v2 + with: + GAP_TESTFILE: "ci/run-gap-teststandard.g" + - name: "Run GAP's tst/testbugfix.g" + uses: gap-actions/run-pkg-tests@v2 + with: + GAP_TESTFILE: "ci/run-gap-testbugfix.g" +