3131 steps :
3232 # Install git prior to cloning to ensure we have the full repo
3333 # TODO: create a docker with these pre-installed
34- - name : Install common dependencies
34+ - name : Install build dependencies
3535 run : |
3636 apt-get update && apt-get install -y --no-install-recommends \
3737 build-essential \
5555 bc \
5656 libdistro-info-perl
5757
58+ # Download pre-built packages from debs branch
59+ - name : Checkout debs branch
60+ uses : actions/checkout@v4
61+ with :
62+ repository : wolfSSL/wolfProvider
63+ ref : debs
64+ sparse-checkout : |
65+ fips
66+ nonfips
67+ openssl
68+ sparse-checkout-cone-mode : false
69+ path : debs
70+
71+ - name : Setup packages from debs branch
72+ run : |
73+ mkdir -p ${{ env.WOLFSSL_PACKAGES_PATH }}
74+ mkdir -p ${{ env.OPENSSL_PACKAGES_PATH }}
75+
76+ echo "Available packages in debs branch:"
77+ ls -la debs/
78+
79+ # Copy packages based on build type
80+ if [ "${{ inputs.fips_ref }}" = "FIPS" ]; then
81+ if [ -d "debs/fips" ] && [ "$(ls -A debs/fips/*.deb 2>/dev/null)" ]; then
82+ echo "Copying FIPS wolfSSL packages..."
83+ cp debs/fips/*.deb ${{ env.WOLFSSL_PACKAGES_PATH }}/
84+ else
85+ echo "ERROR: No FIPS packages found in debs branch"
86+ exit 1
87+ fi
88+ else
89+ if [ -d "debs/nonfips" ] && [ "$(ls -A debs/nonfips/*.deb 2>/dev/null)" ]; then
90+ echo "Copying non-FIPS wolfSSL packages..."
91+ cp debs/nonfips/*.deb ${{ env.WOLFSSL_PACKAGES_PATH }}/
92+ else
93+ echo "ERROR: No non-FIPS packages found in debs branch"
94+ exit 1
95+ fi
96+ fi
97+ # Copy OpenSSL packages
98+ if [ -d "debs/openssl" ] && [ "$(ls -A debs/openssl/*.deb 2>/dev/null)" ]; then
99+ echo "Copying OpenSSL packages..."
100+ cp debs/openssl/*.deb ${{ env.OPENSSL_PACKAGES_PATH }}/
101+ else
102+ echo "WARNING: No OpenSSL packages found in debs branch"
103+ fi
104+
105+ echo ""
106+ echo "Packages ready for installation:"
107+ echo "wolfSSL packages:"
108+ ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
109+ echo ""
110+ echo "OpenSSL packages:"
111+ ls -la ${{ env.OPENSSL_PACKAGES_PATH }}
112+
113+ - name : Install OpenSSL and wolfSSL packages
114+ run : |
115+ echo "Installing OpenSSL and wolfSSL packages (${{ inputs.fips_ref }})..."
116+
117+ # Install OpenSSL packages first
118+ if [ -n "$(ls -A ${{ env.OPENSSL_PACKAGES_PATH }}/*.deb 2>/dev/null)" ]; then
119+ echo "Installing OpenSSL packages..."
120+ dpkg -i ${{ env.OPENSSL_PACKAGES_PATH }}/*.deb || true
121+ fi
122+ # Install wolfSSL packages
123+ if [ -n "$(ls -A ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb 2>/dev/null)" ]; then
124+ echo "Installing wolfSSL packages..."
125+ dpkg -i ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb || true
126+ fi
127+
128+ # Fix any dependency issues
129+ apt-get install -f -y
130+
131+ echo ""
132+ echo "Packages installed successfully:"
133+ echo "OpenSSL:"
134+ dpkg -l | grep openssl || echo " No OpenSSL packages found"
135+ echo ""
136+ echo "wolfSSL:"
137+ dpkg -l | grep wolfssl || echo " No wolfSSL packages found"
138+
58139 - name : Checkout wolfProvider
59140 uses : actions/checkout@v4
60141 with :
@@ -72,22 +153,38 @@ jobs:
72153 git remote add upstream https://github.com/wolfSSL/wolfProvider.git || true
73154 git fetch upstream --tags --no-recurse-submodules
74155
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-
83156 - name : Install wolfProvider
84157 run : |
85- $GITHUB_WORKSPACE/debian/install-wolfprov.sh ${{ env.WOLFPROV_PACKAGES_PATH }}
158+ if [ "${{ inputs.fips_ref }}" = "FIPS" ]; then
159+ FIPS_FLAG="--fips"
160+ else
161+ FIPS_FLAG=""
162+ fi
163+ $GITHUB_WORKSPACE/debian/install-wolfprov.sh $FIPS_FLAG ${{ env.WOLFPROV_PACKAGES_PATH }} || {
164+ echo "Build failed. Showing test-suite.log if available:"
165+ find . -name "test-suite.log" -exec cat {} \;
166+ exit 1
167+ }
86168
87- - name : List packages directories
169+ - name : Setup packages directory
88170 run : |
171+ mkdir -p ${{ env.WOLFPROV_PACKAGES_PATH }}
172+
173+ # Copy wolfProvider packages (built in previous step)
174+ cp $GITHUB_WORKSPACE/../libwolfprov*.deb ${{ env.WOLFPROV_PACKAGES_PATH }}
175+ cp $GITHUB_WORKSPACE/../libwolfprov*.dsc ${{ env.WOLFPROV_PACKAGES_PATH }}
176+ cp $GITHUB_WORKSPACE/../libwolfprov*.tar.gz ${{ env.WOLFPROV_PACKAGES_PATH }}
177+
178+ # Note: OpenSSL and wolfSSL packages already copied from debs branch earlier
179+
180+ printf "Listing packages directory:\n"
181+ echo "wolfProvider packages:"
89182 ls -la ${{ env.WOLFPROV_PACKAGES_PATH }}
183+ echo ""
184+ echo "wolfSSL packages:"
90185 ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
186+ echo ""
187+ echo "OpenSSL packages:"
91188 ls -la ${{ env.OPENSSL_PACKAGES_PATH }}
92189
93190 - name : Save all packages to cache for use by other workflows
0 commit comments