forked from wolfSSL/wolfssl
-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (114 loc) · 3.88 KB
/
Copy pathnss.yml
File metadata and controls
132 lines (114 loc) · 3.88 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
122
123
124
125
126
127
128
129
130
131
132
name: nss interop Tests
### TODO uncomment stuff
# START OF COMMON SECTION
on:
push:
branches: [ 'release/**' ]
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
branches: [ '*' ]
# Daily run on master reseeds the shared cache (see save steps below).
schedule:
- cron: '40 4 * * *'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# END OF COMMON SECTION
env:
NSS_REF: NSS_3_107_RTM
jobs:
build_nss:
name: Build nss
if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }}
runs-on: ubuntu-24.04
# This should be a safe limit for the tests to run.
timeout-minutes: 30
steps:
- name: Checkout wolfSSL CI actions
uses: actions/checkout@v5
with:
sparse-checkout: .github/actions
fetch-depth: 1
- name: Checking if we have nss in cache
uses: actions/cache/restore@v5
id: cache
with:
path: dist
key: nss-${{ env.NSS_REF }}
lookup-only: true
- name: Install dependencies
if: steps.cache.outputs.cache-hit != 'true'
uses: ./.github/actions/install-apt-deps
with:
packages: gyp ninja-build
ghcr-debs-tag: ubuntu-24.04-full
- name: Checkout nss
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/checkout@v5
with:
repository: nss-dev/nss
ref: ${{ env.NSS_REF }}
path: nss
fetch-depth: 1
- name: Compile nss
if: steps.cache.outputs.cache-hit != 'true'
run: |
hg clone https://hg.mozilla.org/projects/nspr
cd nss
./build.sh
# Only master (the daily schedule) saves, so all PRs share one entry.
- name: Save nss cache
if: github.ref == 'refs/heads/master' && steps.cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v5
with:
path: dist
key: nss-${{ env.NSS_REF }}
# On a cache miss, hand the freshly built dist/ to nss_test via an
# artifact so nss is not compiled a second time in the same run.
- name: tar nss dist
if: steps.cache.outputs.cache-hit != 'true'
run: tar -zcf nss-dist.tgz dist
- name: Upload nss build
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/upload-artifact@v6
with:
name: nss-build
path: nss-dist.tgz
retention-days: 1
nss_test:
name: Test interop with nss
if: ${{ (github.repository_owner == 'wolfssl') && (github.event_name != 'pull_request' || github.event.pull_request.draft == false) }}
runs-on: ubuntu-24.04
needs: build_nss
timeout-minutes: 30
steps:
# Restore only: the build_nss job (master/schedule) owns the save.
- name: Checking if we have nss in cache
uses: actions/cache/restore@v5
id: cache
with:
path: dist
key: nss-${{ env.NSS_REF }}
# On a cache miss, reuse the build_nss artifact instead of recompiling.
# master restores from the cache above instead.
- name: Download nss build (fallback on cache miss)
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/download-artifact@v7
with:
name: nss-build
- name: untar nss dist (fallback on cache miss)
if: steps.cache.outputs.cache-hit != 'true'
run: tar -xf nss-dist.tgz
- name: Build wolfSSL
uses: wolfSSL/actions-build-autotools-project@v1
with:
path: wolfssl
configure: --enable-dtls --enable-dtls13
install: false
check: false
- name: Test interop
run: bash wolfssl/.github/workflows/nss.sh
- name: print server logs
if: ${{ failure() }}
run: |
cat /tmp/server.log