-
Notifications
You must be signed in to change notification settings - Fork 2
63 lines (60 loc) · 2.13 KB
/
Copy pathCI.yml
File metadata and controls
63 lines (60 loc) · 2.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
name: Ubuntu
on:
workflow_dispatch:
pull_request:
push:
schedule:
# Every weekday at 01:30 AM UTC
- cron: '30 1 * * 1-5'
# 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:
test:
name: ${{ matrix.os }} - GAP ${{ matrix.gap-branch }} - Rust ${{matrix.rust-version}}
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
os:
- ubuntu
gap-branch:
- master
- stable-4.15
- stable-4.14
- stable-4.13
rust-version:
- stable
steps:
- uses: actions/checkout@v5
- uses: gap-actions/setup-cygwin@v2
if: ${{ runner.os == 'Windows' }}
- name: "Set up rust"
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust-version }}
default: true
- name: "Build the rust component of Vole"
run: cd rust && cargo --version && cargo build --release --all-features
- name: "Run the rust tests for Vole"
run: cd rust && cargo test --release -q
- name: "Install GAP and the necessary packages"
uses: gap-actions/setup-gap@v2
with:
GAPBRANCH: ${{ matrix.gap-branch }}
GAP_PKGS_TO_CLONE: "OrbitalGraphs quickcheck"
GAP_PKGS_TO_BUILD: "datastructures digraphs ferret io json orb profiling"
- name: "Run GAP tests for Vole"
uses: gap-actions/run-pkg-tests@v4
- uses: gap-actions/process-coverage@v2
- uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: "Setup tmate session"
uses: mxschmitt/action-tmate@v3
if: ${{ failure() }}
timeout-minutes: 15