-
Notifications
You must be signed in to change notification settings - Fork 39
102 lines (95 loc) · 3.54 KB
/
ci.yml
File metadata and controls
102 lines (95 loc) · 3.54 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
name: "Build and test"
on:
# Run the checks on the latest commit from `main`
push:
branches:
- main
# Run the check for any pull request. The check is run on a merge between the
# PR commit and the `main` branch at the time of running the check.
pull_request:
# Runs the check when a PR is added to the merge queue.
merge_group:
# Makes it possible to run the forkflow by hand from GitHub's interface.
workflow_dispatch:
# Cancel previous versions of this job that are still running.
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
charon:
#runs-on: ubuntu-latest
runs-on: [self-hosted, linux, nix]
steps:
#- uses: cachix/install-nix-action@v22
- uses: actions/checkout@v4
- run: nix build -L .#charon
- run: nix build -L .#charon-ml
- run: nix flake check -L
check-version-number:
runs-on: [self-hosted, linux, nix]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # deep clone in order to get access to other commits
- run: nix develop '.#ci' --command ./scripts/ci-check-version-number.sh
# Choose which commit to use for each project. By default we use the latest
# from the main branch, but this can be overridden with a command in the PR
# description.
select-dep-versions:
needs: [charon]
runs-on: [self-hosted, linux, nix]
env:
CI_EVENT: ${{ github.event_name }}
PR_NUMBER: ${{ github.event.number }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # deep clone in order to get access to other commits
- id: select
env:
GH_TOKEN: ${{ github.token }}
run: |
echo "charon=${{ github.sha }}" >> "$GITHUB_OUTPUT"
nix develop '.#ci' --command ./scripts/ci-select-dep-versions.py >> "$GITHUB_OUTPUT"
echo
echo "Selected the following versions for dependent projects:"
cat "$GITHUB_OUTPUT"
outputs:
charon: ${{ steps.select.outputs.charon }}
aeneas: ${{ steps.select.outputs.aeneas }}
eurydice: ${{ steps.select.outputs.eurydice }}
libcrux: ${{ steps.select.outputs.libcrux }}
aeneas:
needs: [charon, select-dep-versions]
runs-on: [self-hosted, linux, nix]
steps:
- uses: actions/checkout@v4
with:
repository: Inria-Prosecco/circus-green
- env:
CHARON: ${{needs.select-dep-versions.outputs.charon}}
AENEAS: ${{needs.select-dep-versions.outputs.aeneas}}
run: |
echo 'Using the aeneas commit selected by `select-dep-versions`'
nix flake update --refresh \
charon aeneas \
--override-input charon github:aeneasverif/charon/$CHARON \
--override-input aeneas github:aeneasverif/aeneas/$AENEAS
./check.sh aeneas
eurydice:
needs: [charon, select-dep-versions]
runs-on: [self-hosted, linux, nix]
steps:
- uses: actions/checkout@v4
with:
repository: Inria-Prosecco/circus-green
- env:
CHARON: ${{needs.select-dep-versions.outputs.charon}}
EURYDICE: ${{needs.select-dep-versions.outputs.eurydice}}
run: |
echo 'Using the eurydice commit selected by `select-dep-versions`'
nix flake update --refresh \
charon eurydice \
--override-input charon github:aeneasverif/charon/$CHARON \
--override-input eurydice github:aeneasverif/eurydice/$EURYDICE
./check.sh eurydice