-
Notifications
You must be signed in to change notification settings - Fork 34
149 lines (130 loc) · 4.99 KB
/
ppp.yml
File metadata and controls
149 lines (130 loc) · 4.99 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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
name: PPP Tests
on:
push:
branches: [ 'master', 'main', 'release/**' ]
pull_request:
branches: [ '*' ]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_wolfprovider:
uses: ./.github/workflows/build-wolfprovider.yml
with:
wolfssl_ref: ${{ matrix.wolfssl_ref }}
openssl_ref: ${{ matrix.openssl_ref }}
fips_ref: ${{ matrix.fips_ref }}
replace_default: ${{ matrix.replace_default }}
strategy:
matrix:
wolfssl_ref: [ 'v5.8.4-stable' ]
openssl_ref: [ 'openssl-3.5.4' ]
fips_ref: [ 'FIPS', 'non-FIPS' ]
replace_default: [ true ]
test_ppp:
runs-on: ubuntu-22.04
needs: build_wolfprovider
container:
image: debian:bookworm
env:
DEBIAN_FRONTEND: noninteractive
timeout-minutes: 15
strategy:
matrix:
# Switched to v2.5.2 due to significant limitations with v2.4.9,
# specifically the lack of a test suite, necessary configure options,
# and compatibility with newer versions of openssl
ppp_ref: [ 'v2.5.2' ]
wolfssl_ref: [ 'v5.8.4-stable' ]
openssl_ref: [ 'openssl-3.5.4' ]
fips_ref: [ 'FIPS', 'non-FIPS' ]
force_fail: [ 'WOLFPROV_FORCE_FAIL=1', '' ]
replace_default: [ true ]
env:
WOLFSSL_PACKAGES_PATH: /tmp/wolfssl-packages
OPENSSL_PACKAGES_PATH: /tmp/openssl-packages
WOLFPROV_PACKAGES_PATH: /tmp/wolfprov-packages
steps:
# Checkout the source so we can run the check-workflow-result script
- name: Checkout wolfProvider
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Download packages from build job
uses: actions/download-artifact@v4
with:
name: debian-packages-${{ matrix.fips_ref }}${{ matrix.replace_default && '-replace-default' || '' }}-${{ matrix.wolfssl_ref }}-${{ matrix.openssl_ref }}
path: /tmp
- name: Install wolfSSL/OpenSSL/wolfprov packages
run: |
apt install --reinstall -y --allow-downgrades --allow-change-held-packages \
${{ env.WOLFSSL_PACKAGES_PATH }}/libwolfssl*.deb
apt install --reinstall -y --allow-downgrades --allow-change-held-packages \
${{ env.OPENSSL_PACKAGES_PATH }}/openssl*.deb \
${{ env.OPENSSL_PACKAGES_PATH }}/libssl3*.deb \
${{ env.OPENSSL_PACKAGES_PATH }}/libssl-dev*.deb
apt install --reinstall -y --allow-downgrades --allow-change-held-packages \
${{ env.WOLFPROV_PACKAGES_PATH }}/libwolfprov_*.deb
# Prevent later 'apt-get install' of test dependencies from
# replacing the wolfprov-patched libssl3, which breaks
# replace-default mode.
apt-mark hold libssl3 libssl-dev openssl libwolfssl libwolfprov
- name: Verify wolfProvider is properly installed
run: |
$GITHUB_WORKSPACE/scripts/verify-install.sh \
${{ matrix.replace_default && '--replace-default' || '' }} \
${{ matrix.fips_ref == 'FIPS' && '--fips' || '' }}
- name: Install dependencies
run: |
apt-get update
apt-get install -y build-essential autoconf libtool patch
- name: Checkout PPP
uses: actions/checkout@v4
with:
repository: ppp-project/ppp
path: ppp_repo
ref: ${{ matrix.ppp_ref }}
fetch-depth: 1
- name: Checkout OSP
uses: actions/checkout@v4
with:
repository: wolfssl/osp
path: osp
fetch-depth: 1
- run: |
cd ppp_repo
if [ ${{ matrix.fips_ref == 'FIPS' }} ]; then
patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/ppp/ppp-FIPS-${{ matrix.ppp_ref }}-wolfprov.patch
else
patch -p1 < $GITHUB_WORKSPACE/osp/wolfProvider/ppp/ppp-${{ matrix.ppp_ref }}-wolfprov.patch
fi
- name: Build and install PPP
working-directory: ppp_repo
run: |
if [ -f ./autogen.sh ]; then
./autogen.sh
elif [ ! -f ./configure ]; then
autoreconf -fiv
fi
if [ ${{ matrix.fips_ref == 'FIPS' }} ]; then
./configure --prefix=$GITHUB_WORKSPACE/ppp-install --disable-microsoft-extensions --enable-wolfprov-fips
else
./configure --prefix=$GITHUB_WORKSPACE/ppp-install --disable-microsoft-extensions
fi
make -j$(nproc)
make install
- name: Run PPP tests
working-directory: ppp_repo
shell: bash
run: |
set +o pipefail # ignore errors from make check
export ${{ matrix.force_fail }}
# Run tests
make check 2>&1 | tee ppp-test.log
# Check test results directly in YAML
if grep -q "# FAIL: 0" pppd/test-suite.log; then
TEST_RESULT=0
else
TEST_RESULT=1
fi
$GITHUB_WORKSPACE/.github/scripts/check-workflow-result.sh $TEST_RESULT ${{ matrix.force_fail }} ppp