99 openssl_ref :
1010 required : true
1111 type : string
12+ fips_ref :
13+ required : false
14+ type : string
1215 replace_default :
1316 required : false
1417 type : boolean
3134 steps :
3235 # Install git prior to cloning to ensure we have the full repo
3336 # TODO: create a docker with these pre-installed
34- - name : Install common dependencies
37+ - name : Install build dependencies
3538 run : |
3639 apt-get update && apt-get install -y --no-install-recommends \
3740 build-essential \
5558 bc \
5659 libdistro-info-perl
5760
61+ # Download pre-built packages from debs branch
62+ - name : Checkout debs branch
63+ uses : actions/checkout@v4
64+ with :
65+ repository : wolfSSL/wolfProvider
66+ ref : debs
67+ sparse-checkout : |
68+ fips
69+ nonfips
70+ openssl
71+ sparse-checkout-cone-mode : false
72+ path : debs
73+
74+ - name : Setup packages from debs branch
75+ run : |
76+ mkdir -p ${{ env.WOLFSSL_PACKAGES_PATH }}
77+ mkdir -p ${{ env.OPENSSL_PACKAGES_PATH }}
78+
79+ echo "Available packages in debs branch:"
80+ ls -la debs/
81+
82+ # Copy packages based on build type
83+ if [ "${{ inputs.fips_ref }}" = "FIPS" ]; then
84+ if [ -d "debs/fips" ] && [ "$(ls -A debs/fips/*.deb 2>/dev/null)" ]; then
85+ echo "Copying FIPS wolfSSL packages..."
86+ cp debs/fips/*.deb ${{ env.WOLFSSL_PACKAGES_PATH }}/
87+ else
88+ echo "ERROR: No FIPS packages found in debs branch"
89+ exit 1
90+ fi
91+ else
92+ if [ -d "debs/nonfips" ] && [ "$(ls -A debs/nonfips/*.deb 2>/dev/null)" ]; then
93+ echo "Copying non-FIPS wolfSSL packages..."
94+ cp debs/nonfips/*.deb ${{ env.WOLFSSL_PACKAGES_PATH }}/
95+ else
96+ echo "ERROR: No non-FIPS packages found in debs branch"
97+ exit 1
98+ fi
99+ fi
100+ # Copy OpenSSL packages
101+ if [ -d "debs/openssl" ] && [ "$(ls -A debs/openssl/*.deb 2>/dev/null)" ]; then
102+ echo "Copying OpenSSL packages..."
103+ cp debs/openssl/*.deb ${{ env.OPENSSL_PACKAGES_PATH }}/
104+ else
105+ echo "WARNING: No OpenSSL packages found in debs branch"
106+ fi
107+
108+ echo ""
109+ echo "Packages ready for installation:"
110+ echo "wolfSSL packages:"
111+ ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
112+ echo ""
113+ echo "OpenSSL packages:"
114+ ls -la ${{ env.OPENSSL_PACKAGES_PATH }}
115+
116+ - name : Install OpenSSL and wolfSSL packages
117+ run : |
118+ echo "Installing OpenSSL and wolfSSL packages (${{ inputs.fips_ref }})..."
119+
120+ # Install OpenSSL packages first
121+ if [ -n "$(ls -A ${{ env.OPENSSL_PACKAGES_PATH }}/*.deb 2>/dev/null)" ]; then
122+ echo "Installing OpenSSL packages..."
123+ dpkg -i ${{ env.OPENSSL_PACKAGES_PATH }}/*.deb || true
124+ fi
125+ # Install wolfSSL packages
126+ if [ -n "$(ls -A ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb 2>/dev/null)" ]; then
127+ echo "Installing wolfSSL packages..."
128+ dpkg -i ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb || true
129+ fi
130+
131+ # Fix any dependency issues
132+ apt-get install -f -y
133+
134+ echo ""
135+ echo "Packages installed successfully:"
136+ echo "OpenSSL:"
137+ dpkg -l | grep openssl || echo " No OpenSSL packages found"
138+ echo ""
139+ echo "wolfSSL:"
140+ dpkg -l | grep wolfssl || echo " No wolfSSL packages found"
141+
58142 - name : Checkout wolfProvider
59143 uses : actions/checkout@v4
60144 with :
@@ -72,49 +156,47 @@ jobs:
72156 git remote add upstream https://github.com/wolfSSL/wolfProvider.git || true
73157 git fetch upstream --tags --no-recurse-submodules
74158
75- - name : Install wolfSSL
76- run : |
77- $GITHUB_WORKSPACE/debian/install-wolfssl.sh --tag ${{ inputs.wolfssl_ref }} ${{ env.WOLFSSL_PACKAGES_PATH }}
78-
79- - name : Install OpenSSL
80- run : |
81- $GITHUB_WORKSPACE/debian/install-openssl.sh ${{ inputs.replace_default && '--replace-default' || '' }} ${{ env.OPENSSL_PACKAGES_PATH }}
82-
83159 - name : Install wolfProvider
84160 run : |
85- $GITHUB_WORKSPACE/debian/install-wolfprov.sh ${{ env.WOLFPROV_PACKAGES_PATH }}
161+ if [ "${{ inputs.fips_ref }}" = "FIPS" ]; then
162+ FIPS_FLAG="--fips"
163+ else
164+ FIPS_FLAG=""
165+ fi
166+ $GITHUB_WORKSPACE/debian/install-wolfprov.sh $FIPS_FLAG ${{ env.WOLFPROV_PACKAGES_PATH }} || {
167+ echo "Build failed. Showing test-suite.log if available:"
168+ find . -name "test-suite.log" -exec cat {} \;
169+ exit 1
170+ }
86171
87- - name : List packages directories
172+ - name : Setup packages directory
88173 run : |
174+ mkdir -p ${{ env.WOLFPROV_PACKAGES_PATH }}
175+
176+ # Copy wolfProvider packages (built in previous step)
177+ cp $GITHUB_WORKSPACE/../libwolfprov*.deb ${{ env.WOLFPROV_PACKAGES_PATH }}
178+ cp $GITHUB_WORKSPACE/../libwolfprov*.dsc ${{ env.WOLFPROV_PACKAGES_PATH }}
179+ cp $GITHUB_WORKSPACE/../libwolfprov*.tar.gz ${{ env.WOLFPROV_PACKAGES_PATH }}
180+
181+ # Note: OpenSSL and wolfSSL packages already copied from debs branch earlier
182+
183+ printf "Listing packages directory:\n"
184+ echo "wolfProvider packages:"
89185 ls -la ${{ env.WOLFPROV_PACKAGES_PATH }}
186+ echo ""
187+ echo "wolfSSL packages:"
90188 ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
189+ echo ""
190+ echo "OpenSSL packages:"
91191 ls -la ${{ env.OPENSSL_PACKAGES_PATH }}
92192
93- - name : Save all packages to cache for use by other workflows
94- uses : actions/cache/save@v4
95- continue-on-error : true
193+ # Save all packages as artifacts for consumers
194+ - name : Upload wolfProvider packages
195+ uses : actions/upload-artifact@v4
96196 with :
197+ name : debian-packages-${{ inputs.fips_ref }}${{ inputs.replace_default && '-replace-default' || '' }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}
97198 path : |
98199 ${{ env.WOLFSSL_PACKAGES_PATH }}
99200 ${{ env.OPENSSL_PACKAGES_PATH }}
100201 ${{ env.WOLFPROV_PACKAGES_PATH }}
101- key : openssl-wolfprov-debian-packages-${{ github.sha }}${{ inputs.replace_default && '-replace-default' || '' }}
102-
103- # Save all packages in a single artifact for consumers
104- # TODO: support debug builds
105- - name : Upload wolfProvider artifacts
106- uses : actions/upload-artifact@v4
107- continue-on-error : true
108- with :
109- name : openssl-wolfprov-debian-packages-${{ github.sha }}${{ inputs.replace_default && '-replace-default' || '' }}
110- path : |
111- ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb
112- ${{ env.WOLFSSL_PACKAGES_PATH }}/*.dsc
113- ${{ env.WOLFSSL_PACKAGES_PATH }}/*.tar.gz
114- ${{ env.OPENSSL_PACKAGES_PATH }}/*.deb
115- ${{ env.OPENSSL_PACKAGES_PATH }}/*.dsc
116- ${{ env.OPENSSL_PACKAGES_PATH }}/*.tar.gz
117- ${{ env.WOLFPROV_PACKAGES_PATH }}/*.deb
118- ${{ env.WOLFPROV_PACKAGES_PATH }}/*.dsc
119- ${{ env.WOLFPROV_PACKAGES_PATH }}/*.tar.gz
120202 retention-days : 1
0 commit comments