Commit b249331
committed
ci: split OSP integration tests to nightly + add ASan/UBSan
PR CI was burning runner time on 40 OSP integration workflows that
each spin up multiple matrix jobs, install a Debian container, install
.debs, and run upstream test suites -- on every push. That's the
runner-throttling we've been hitting. Move all of that to nightly.
OSP workflows -> reusable + dispatch-only
=========================================
40 workflows converted from `on: pull_request + push` to
`on: workflow_call + workflow_dispatch`. PRs no longer trigger them.
The `wait_for_smoke` job inside each is removed -- nightly doesn't
have a smoke gate (smoke gates the open-PR fast feedback loop, not
scheduled runs). Upstream matrices restored where Phase A had trimmed
them:
- curl: curl_ref back to [curl-8_4_0, curl-7_88_1]
- openssh: openssh_ref back to [V_10_0_P2, V_9_9_P1]
- git-ssh-dr: key_type back to all four, iterations back to 10
The 40 OSPs: bind9, cjose, curl, debian-package, git-ssh-dr, grpc,
hostap, iperf, krb5, libcryptsetup, libeac3, libfido2, libhashkit2,
libnice, liboauth2, librelp, libssh2, libtss2, libwebsockets, net-snmp,
nginx, openldap, opensc, openssh, openvpn, pam-pkcs11, ppp,
python3-ntp, qt5network5, rsync, socat, sscep, sssd, stunnel, systemd,
tcpdump, tnftp, tpm2-tools, x11vnc, xmlsec.
New nightly orchestrator (.github/workflows/nightly-osp.yml)
============================================================
`schedule: 0 6 * * *` + workflow_dispatch. Fans out all 40 OSP
workflows in parallel via `uses:` and aggregates results in a
`notify` job that:
- Always runs (`if: always()`) so failures don't suppress the report.
- Parses `toJSON(needs)` to build pass/fail lists with jq:
to_entries[] | select(.value.result != "success") | "\(.key) (\(.value.result))"
(the `[]` stream is load-bearing -- `map(...)` then `.[].key`
inside a string template is malformed jq.)
- Posts a green/red Slack attachment to SLACK_WEBHOOK_URL, with
`curl -fsS` so HTTP errors actually fail the workflow.
- Writes the same summary to $GITHUB_STEP_SUMMARY so the run page
is readable even when SLACK_WEBHOOK_URL isn't set.
- SLACK_WEBHOOK_URL is read at JOB-level env so the step `if:` can
see it. Step-level env is not in scope for that step's own `if:`.
ASan + UBSan workflow (.github/workflows/sanitizers.yml)
========================================================
Builds OpenSSL, wolfSSL, and wolfProvider from source under
-fsanitize=address,undefined -fno-omit-frame-pointer
-fno-sanitize-recover=all -static-libasan, then runs do-cmd-tests.sh
against the instrumented binaries. ASAN_OPTIONS and UBSAN_OPTIONS set
to halt on first hit so we don't drown in cascades. Versions come
from _discover-versions.yml. Gated on smoke. Runs on PR.
wait_for_smoke kept where it matters
====================================
After the OSP move, the PR-triggered workflows that build wolfProvider
all gate on smoke: simple, cmdline, fips-ready, openssl-version,
seed-src, multi-compiler, sanitizers. codespell stays ungated (it
doesn't build wolfprov).
Requires repo secret SLACK_WEBHOOK_URL for the Slack push to fire;
absent it the workflow still runs and writes the summary to the job
output.1 parent fddae3e commit b249331
47 files changed
Lines changed: 725 additions & 1377 deletions
File tree
- .github/workflows
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
4 | 8 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 9 | + | |
| 10 | + | |
21 | 11 | | |
22 | 12 | | |
23 | 13 | | |
24 | 14 | | |
25 | | - | |
26 | | - | |
27 | 15 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | 16 | | |
42 | | - | |
43 | 17 | | |
44 | 18 | | |
45 | 19 | | |
46 | | - | |
47 | | - | |
| 20 | + | |
48 | 21 | | |
49 | 22 | | |
50 | 23 | | |
| |||
60 | 33 | | |
61 | 34 | | |
62 | 35 | | |
63 | | - | |
64 | 36 | | |
65 | 37 | | |
66 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
4 | 8 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 9 | + | |
| 10 | + | |
21 | 11 | | |
22 | 12 | | |
23 | 13 | | |
24 | 14 | | |
25 | | - | |
26 | | - | |
27 | 15 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | 16 | | |
42 | | - | |
43 | 17 | | |
44 | 18 | | |
45 | 19 | | |
46 | | - | |
47 | | - | |
| 20 | + | |
48 | 21 | | |
49 | 22 | | |
50 | 23 | | |
| |||
60 | 33 | | |
61 | 34 | | |
62 | 35 | | |
63 | | - | |
64 | 36 | | |
65 | 37 | | |
66 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
28 | 41 | | |
| 42 | + | |
29 | 43 | | |
30 | 44 | | |
31 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
4 | 8 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 9 | + | |
| 10 | + | |
21 | 11 | | |
22 | 12 | | |
23 | 13 | | |
24 | 14 | | |
25 | | - | |
26 | | - | |
27 | 15 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | 16 | | |
42 | | - | |
43 | 17 | | |
44 | 18 | | |
45 | 19 | | |
46 | | - | |
47 | | - | |
| 20 | + | |
48 | 21 | | |
49 | 22 | | |
50 | 23 | | |
| |||
60 | 33 | | |
61 | 34 | | |
62 | 35 | | |
63 | | - | |
64 | 36 | | |
65 | 37 | | |
66 | 38 | | |
| |||
72 | 44 | | |
73 | 45 | | |
74 | 46 | | |
75 | | - | |
76 | | - | |
| 47 | + | |
77 | 48 | | |
78 | 49 | | |
79 | 50 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
4 | 8 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
| 9 | + | |
| 10 | + | |
21 | 11 | | |
22 | 12 | | |
23 | 13 | | |
24 | 14 | | |
25 | | - | |
26 | | - | |
27 | 15 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | 16 | | |
42 | | - | |
43 | 17 | | |
44 | 18 | | |
45 | 19 | | |
46 | | - | |
47 | | - | |
| 20 | + | |
48 | 21 | | |
49 | 22 | | |
50 | 23 | | |
| |||
60 | 33 | | |
61 | 34 | | |
62 | 35 | | |
63 | | - | |
64 | 36 | | |
65 | 37 | | |
66 | 38 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
28 | 41 | | |
| 42 | + | |
29 | 43 | | |
30 | 44 | | |
31 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
3 | 8 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
| 9 | + | |
| 10 | + | |
20 | 11 | | |
21 | 12 | | |
22 | 13 | | |
23 | 14 | | |
24 | | - | |
25 | 15 | | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | 16 | | |
40 | | - | |
41 | 17 | | |
42 | 18 | | |
43 | 19 | | |
44 | | - | |
45 | | - | |
| 20 | + | |
46 | 21 | | |
47 | 22 | | |
48 | 23 | | |
| |||
58 | 33 | | |
59 | 34 | | |
60 | 35 | | |
61 | | - | |
62 | 36 | | |
63 | 37 | | |
64 | 38 | | |
| |||
74 | 48 | | |
75 | 49 | | |
76 | 50 | | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
| 51 | + | |
| 52 | + | |
81 | 53 | | |
82 | 54 | | |
83 | 55 | | |
| |||
0 commit comments