Skip to content

Commit 9c2dbac

Browse files
committed
os-check: split platform-agnostic configs to Linux-only job
Split make_check into two jobs to reduce CI time: - make_check: 37 configs that interact with platform-specific features (sys-ca-certs, Apple Security.framework, OpenSSL compat, networking) continue to run on both Ubuntu and macOS. - make_check_linux: 17 configs testing pure crypto algorithms, preprocessor guards, or features with no macOS-specific code paths now run on Linux only. Also change make_user_settings_testwolfcrypt to Linux-only since testwolfcrypt runs pure crypto tests with no platform-specific features. Saves ~33 CI jobs with no loss of test coverage.
1 parent 585a1ec commit 9c2dbac

1 file changed

Lines changed: 45 additions & 20 deletions

File tree

.github/workflows/os-check.yml

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ concurrency:
1313
# END OF COMMON SECTION
1414

1515
jobs:
16+
# Configs that interact with platform-specific features (sys-ca-certs,
17+
# Apple Security.framework, OpenSSL compat layer, networking).
18+
# Run on both Ubuntu and macOS.
1619
make_check:
1720
strategy:
1821
fail-fast: false
@@ -39,8 +42,6 @@ jobs:
3942
'--enable-dtls --enable-dtlscid --enable-dtls13 --enable-secure-renegotiation
4043
--enable-psk --enable-aesccm --enable-nullcipher
4144
CPPFLAGS=-DWOLFSSL_STATIC_RSA',
42-
'--enable-ascon --enable-experimental',
43-
'--enable-ascon CPPFLAGS=-DWOLFSSL_ASCON_UNROLL --enable-experimental',
4445
'--enable-all CPPFLAGS=''-DNO_AES_192 -DNO_AES_256'' ',
4546
'--enable-sniffer --enable-curve25519 --enable-curve448 --enable-enckeys
4647
CPPFLAGS=-DWOLFSSL_DH_EXTRA',
@@ -49,32 +50,17 @@ jobs:
4950
'--enable-opensslall --enable-opensslextra CPPFLAGS=-DWC_RNG_SEED_CB',
5051
'--enable-opensslall --enable-opensslextra
5152
CPPFLAGS=''-DWC_RNG_SEED_CB -DWOLFSSL_NO_GETPID'' ',
52-
# PKCS#7 with RSA-PSS (CMS RSASSA-PSS signers)
53-
'--enable-pkcs7 CPPFLAGS=-DWC_RSA_PSS',
54-
# PKCS#7 without RSA-PSS
55-
'--enable-pkcs7',
5653
'--enable-opensslextra CPPFLAGS=''-DWOLFSSL_NO_CA_NAMES'' ',
5754
'--enable-opensslextra=x509small',
58-
'CPPFLAGS=''-DWOLFSSL_EXTRA'' ',
5955
'--disable-sys-ca-certs',
6056
'--enable-all CPPFLAGS=-DWOLFSSL_DEBUG_CERTS ',
6157
'--enable-all CPPFLAGS="-DWOLFSSL_CHECK_MEM_ZERO"',
62-
'--enable-coding=no',
6358
'--enable-dtls --enable-dtls13 --enable-ocspstapling --enable-ocspstapling2
6459
--enable-cert-setup-cb --enable-sessioncerts',
6560
'--enable-dtls --enable-dtls13 --enable-tls13
6661
CPPFLAGS=-DWOLFSSL_TLS13_IGNORE_PT_ALERT_ON_ENC',
67-
'--disable-sni --disable-ecc --disable-tls13 --disable-secure-renegotiation-info',
68-
'CPPFLAGS=-DWOLFSSL_BLIND_PRIVATE_KEY',
6962
'--enable-all --enable-certgencache',
70-
'--enable-sessionexport --enable-dtls --enable-dtls13',
71-
'--enable-sessionexport',
72-
'--enable-cryptocb --enable-aesgcm CPPFLAGS="-DWOLF_CRYPTO_CB_AES_SETKEY -DWOLF_CRYPTO_CB_FREE"',
73-
'--disable-tls --enable-cryptocb --enable-aesgcm CPPFLAGS="-DWOLF_CRYPTO_CB_AES_SETKEY -DWOLF_CRYPTO_CB_FREE"',
7463
'--enable-all --enable-dilithium --enable-cryptocb --enable-cryptocbutils --enable-pkcallbacks',
75-
'--disable-examples CPPFLAGS=-DWOLFSSL_NO_MALLOC',
76-
'CPPFLAGS=-DNO_WOLFSSL_CLIENT',
77-
'CPPFLAGS=-DNO_WOLFSSL_SERVER',
7864
'CPPFLAGS=-DWOLFSSL_NO_CLIENT_AUTH',
7965
'CPPFLAGS=''-DNO_WOLFSSL_CLIENT -DWOLFSSL_NO_CLIENT_AUTH''',
8066
'CPPFLAGS=''-DNO_WOLFSSL_SERVER -DWOLFSSL_NO_CLIENT_AUTH''',
@@ -83,8 +69,6 @@ jobs:
8369
'--enable-all CPPFLAGS=-DWOLFSSL_NO_CLIENT_AUTH',
8470
'--enable-all CPPFLAGS=''-DNO_WOLFSSL_CLIENT -DWOLFSSL_NO_CLIENT_AUTH''',
8571
'--enable-all CPPFLAGS=''-DNO_WOLFSSL_SERVER -DWOLFSSL_NO_CLIENT_AUTH''',
86-
'--enable-curve25519=nonblock --enable-ecc=nonblock --enable-sp=yes,nonblock CPPFLAGS="-DWOLFSSL_PUBLIC_MP -DWOLFSSL_DEBUG_NONBLOCK"',
87-
'--enable-certreq --enable-certext --enable-certgen --disable-secure-renegotiation-info CPPFLAGS="-DNO_TLS"',
8872
'--enable-ocsp --enable-ocsp-responder --enable-ocspstapling CPPFLAGS="-DWOLFSSL_NONBLOCK_OCSP" --enable-maxfragment',
8973
'--enable-all CPPFLAGS=-DWOLFSSL_HASH_KEEP',
9074
'--enable-all --enable-writedup',
@@ -101,6 +85,45 @@ jobs:
10185
configure: CFLAGS="-pedantic -Wno-overlength-strings -Wdeclaration-after-statement -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE" ${{ matrix.config }}
10286
check: true
10387

88+
# Platform-agnostic configs: pure crypto algorithms, preprocessor guards,
89+
# or features with no macOS-specific code paths. Linux only.
90+
make_check_linux:
91+
strategy:
92+
fail-fast: false
93+
matrix:
94+
config: [
95+
'--enable-ascon --enable-experimental',
96+
'--enable-ascon CPPFLAGS=-DWOLFSSL_ASCON_UNROLL --enable-experimental',
97+
# PKCS#7 with RSA-PSS (CMS RSASSA-PSS signers)
98+
'--enable-pkcs7 CPPFLAGS=-DWC_RSA_PSS',
99+
# PKCS#7 without RSA-PSS
100+
'--enable-pkcs7',
101+
'CPPFLAGS=''-DWOLFSSL_EXTRA'' ',
102+
'--enable-coding=no',
103+
'--disable-sni --disable-ecc --disable-tls13 --disable-secure-renegotiation-info',
104+
'CPPFLAGS=-DWOLFSSL_BLIND_PRIVATE_KEY',
105+
'--enable-sessionexport --enable-dtls --enable-dtls13',
106+
'--enable-cryptocb --enable-aesgcm CPPFLAGS="-DWOLF_CRYPTO_CB_AES_SETKEY -DWOLF_CRYPTO_CB_FREE"',
107+
'--disable-tls --enable-cryptocb --enable-aesgcm CPPFLAGS="-DWOLF_CRYPTO_CB_AES_SETKEY -DWOLF_CRYPTO_CB_FREE"',
108+
'--disable-examples CPPFLAGS=-DWOLFSSL_NO_MALLOC',
109+
'CPPFLAGS=-DNO_WOLFSSL_CLIENT',
110+
'CPPFLAGS=-DNO_WOLFSSL_SERVER',
111+
'--enable-lms=small,verify-only --enable-xmss=small,verify-only',
112+
'--enable-curve25519=nonblock --enable-ecc=nonblock --enable-sp=yes,nonblock CPPFLAGS="-DWOLFSSL_PUBLIC_MP -DWOLFSSL_DEBUG_NONBLOCK"',
113+
'--enable-certreq --enable-certext --enable-certgen --disable-secure-renegotiation-info CPPFLAGS="-DNO_TLS"',
114+
]
115+
name: make check (Linux only)
116+
if: github.repository_owner == 'wolfssl'
117+
runs-on: ubuntu-24.04
118+
# This should be a safe limit for the tests to run.
119+
timeout-minutes: 14
120+
steps:
121+
- name: Build and test wolfSSL
122+
uses: wolfSSL/actions-build-autotools-project@v1
123+
with:
124+
configure: CFLAGS="-pedantic -Wno-overlength-strings -Wdeclaration-after-statement -DTEST_LIBWOLFSSL_SOURCES_INCLUSION_SEQUENCE" ${{ matrix.config }}
125+
check: true
126+
104127
make_user_settings:
105128
strategy:
106129
fail-fast: false
@@ -127,7 +150,9 @@ jobs:
127150
strategy:
128151
fail-fast: false
129152
matrix:
130-
os: [ ubuntu-24.04, macos-latest ]
153+
# testwolfcrypt runs pure crypto tests with no platform-specific
154+
# features, so Linux-only is sufficient for these user_settings.
155+
os: [ ubuntu-24.04 ]
131156
user-settings: [
132157
# Add new user_settings.h here (alphabetical order)
133158
'examples/configs/user_settings_ca.h',

0 commit comments

Comments
 (0)