-
Notifications
You must be signed in to change notification settings - Fork 402
121 lines (112 loc) · 3.79 KB
/
Copy pathrelease-testing.yml
File metadata and controls
121 lines (112 loc) · 3.79 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
name: Release Testing
on:
push:
branches:
- "hotfix-*"
- "rc--*"
workflow_dispatch:
# new commits interrupt any running workflow on the same branch
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
permissions:
actions: write
contents: read
id-token: write
pull-requests: read
env:
CI_COMMIT_SHA: ${{ github.sha }}
CI_JOB_NAME: ${{ github.job }}
CI_PROJECT_DIR: ${{ github.workspace }}
BRANCH_NAME: ${{ github.event.workflow_run.head_branch || github.ref_name }}
CI_RUN_ID: ${{ github.run_id }}
jobs:
# Run some extra system tests that are skipped on CI Main.
# Those test suites would overwhelm a runner, so each is run
# as a separate job.
release-system-tests:
name: Release System Tests
runs-on:
group: dm1
labels: dind-large
container: &container-setup
image: ghcr.io/dfinity/ic-build@sha256:65ab9023792784e8e13dbdd5b9a63c2dff0cd38237afd1cdbc299577505d4b88
options: >-
-e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/tmp/containers"
timeout-minutes: 180
steps:
- &checkout
name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.workflow_run.head_branch }}
- uses: ./.github/actions/netrc
- name: Run Bazel System Tests
uses: ./.github/actions/bazel
with:
run: |
bazel test \
--config=stamped \
--config=flaky_retry \
--test_tag_filters=system_test_large,-local_system_test \
//rs/tests/... \
--keep_going
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
ci-main:
name: CI Main
uses: ./.github/workflows/ci-main.yml
secrets: inherit
with:
commit-sha: ${{ github.sha }}
release-build: 'true'
setup-guest-os-qualification:
name: Setting up guest os qualification pipeline
runs-on: &dind-large-setup
labels: dind-large
container: *container-setup
timeout-minutes: 180
outputs:
matrix: ${{ steps.generate.outputs.output }}
steps:
- name: Sparse checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.workflow_run.head_branch }}
sparse-checkout: "ci/scripts/determine-initial-guest-os-versions.py"
- id: generate
name: Fetch beginning versions for qualification
shell: bash
run: |
set -euo pipefail
OUTPUT=$(python3 ci/scripts/determine-initial-guest-os-versions.py)
echo "output=$OUTPUT" >> $GITHUB_OUTPUT
guest-os-qualification:
name: Qualifying ${{ matrix.version }} -> ${{ github.sha }}
needs: setup-guest-os-qualification
strategy:
matrix: ${{ fromJson(needs.setup-guest-os-qualification.outputs.matrix) }}
runs-on: *dind-large-setup
container: *container-setup
timeout-minutes: 180
steps:
- *checkout
- uses: ./.github/actions/netrc
- name: Run qualification for version ${{ matrix.version }} from the tip of the branch
uses: ./.github/actions/bazel
with:
bazel-bep-artifact-name: ${{ github.job }}-${{ matrix.version }}-${{ github.action }}-bep
run: |
bazel test \
--config=stamped \
--config=flaky_retry \
--test_tag_filters= \
//rs/tests/dre:guest_os_qualification_colocate \
--test_env=OLD_VERSION=${{ matrix.version }} \
--keep_going --test_timeout=7200
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
repro-check:
name: Repro check for ${{ github.sha }}
uses: ./.github/workflows/repro-check.yml
needs: [ci-main]
with:
github_sha: ${{ github.sha }}