11name : OpenLDAP Test
2-
32# START OF COMMON SECTION
43on :
54 push :
65 branches : [ 'master', 'main', 'release/**' ]
76 pull_request :
87 branches : [ '*' ]
9-
108concurrency :
119 group : ${{ github.workflow }}-${{ github.ref }}
1210 cancel-in-progress : true
1311# END OF COMMON SECTION
14-
1512jobs :
1613 build_gnutls :
1714 name : Build wolfSSL, GnuTLS and provider
1815 timeout-minutes : 30
1916 strategy :
2017 matrix :
21- os : [ ubuntu-latest ]
22- openldap_ref : [ 'master', 'OPENLDAP_REL_ENG_2_5_13', 'OPENLDAP_REL_ENG_2_6_7', 'OPENLDAP_REL_ENG_2_6_9' ]
18+ include :
19+ - os : ubuntu-latest
20+ openldap_ref : ' master'
21+ use_container : true
22+ - os : ubuntu-latest
23+ openldap_ref : ' OPENLDAP_REL_ENG_2_5_13'
24+ use_container : true
25+ - os : ubuntu-24.04
26+ openldap_ref : ' OPENLDAP_REL_ENG_2_6_7'
27+ use_container : false
28+ - os : ubuntu-latest
29+ openldap_ref : ' OPENLDAP_REL_ENG_2_6_9'
30+ use_container : true
2331 fail-fast : false
2432 runs-on : ${{ matrix.os }}
25- container :
26- image : debian:bookworm
27-
33+ container : ${{ matrix.use_container && 'debian:bookworm' || '' }}
2834 steps :
2935 - name : Checkout gnutls-wolfssl repository
3036 uses : actions/checkout@v4
31-
32- - name : Ensure make available (Ubuntu only)
33- if : matrix.os == 'ubuntu-latest'
37+ - name : Ensure make available
38+ if : matrix.use_container == true
3439 run : |
3540 apt-get update
3641 apt-get install -y build-essential
37-
38- - name : Install GnuTLS dependencies (Ubuntu only)
39- if : matrix.os == 'ubuntu-latest'
42+ - name : Install GnuTLS dependencies
43+ if : matrix.use_container == true
4044 run : |
4145 apt-get install -y gnulib autopoint gperf gtk-doc-tools nettle-dev clang \
4246 libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev sudo \
43- git wget
47+ git wget automake libtool
4448
45- - name : Install OpenLDAP dependencies (Ubuntu only)
46- if : matrix.os == 'ubuntu-latest'
49+ - name : Install OpenLDAP dependencies
50+ if : matrix.use_container == true
4751 run : |
4852 sudo apt-get install -y libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit \
4953 libargon2-dev groff-base libltdl-dev
5054
55+ - name : Install dependencies on native Ubuntu
56+ if : matrix.use_container == false
57+ run : |
58+ sudo apt-get update
59+ sudo apt-get install -y build-essential gnulib autopoint gperf gtk-doc-tools nettle-dev clang \
60+ libtasn1-bin libtasn1-6-dev libunistring-dev libp11-kit-dev libunbound-dev \
61+ git wget libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit \
62+ libargon2-dev groff-base libltdl-dev automake libtool
5163 # ───────────── cache the wolfssl/gnutls tool-chain ─────────────
5264 - name : Restore cached gnutls-wolfssl
5365 id : cache-gnutls
@@ -60,27 +72,23 @@ jobs:
6072 key : gnutls-wolfssl-${{ runner.os }}-${{ hashFiles('setup.sh', 'wolfssl-gnutls-wrapper/**', 'wolfssl/**', 'gnutls/**') }}
6173 restore-keys : |
6274 gnutls-wolfssl-${{ runner.os }}-
63-
6475 - name : Build GnuTLS with wolfSSL provider using setup.sh script
6576 if : steps.cache-gnutls.outputs.cache-hit != 'true'
6677 run : |
6778 echo "Running setup.sh..."
6879 GNUTLS_INSTALL=/opt/gnutls WOLFSSL_INSTALL=/opt/wolfssl ./setup.sh
69-
7080 - name : Check setup.sh output directories
7181 run : |
7282 test -d /opt/wolfssl || { echo "/opt/wolfssl missing"; exit 1; }
7383 test -d /opt/gnutls || { echo "/opt/gnutls missing"; exit 1; }
7484 test -d /opt/wolfssl-gnutls-wrapper/lib || { echo "/opt/wolfssl-gnutls-wrapper/lib missing"; exit 1; }
75-
7685 - name : Build OpenLDAP at ${{ matrix.openldap_ref }}
7786 run : |
7887 git clone https://git.openldap.org/openldap/openldap.git
7988 cd openldap
8089 if [ "${{ matrix.openldap_ref }}" != "master" ]; then
8190 git checkout ${{ matrix.openldap_ref }}
8291 fi
83-
8492 - name : Configure OpenLDAP
8593 working-directory : openldap
8694 run : |
@@ -97,13 +105,11 @@ jobs:
97105 --enable-remoteauth \
98106 --prefix=/opt/openldap \
99107 --enable-modules
100-
101108 - name : Build OpenLDAP
102109 working-directory : openldap
103110 run : |
104111 make depend
105112 make
106-
107113 - name : Test OpenLDAP
108114 working-directory : openldap
109115 run : |
0 commit comments