1616 required : false
1717 type : boolean
1818 default : false
19+ use_cached_packages :
20+ required : false
21+ type : boolean
22+ default : true
1923
2024jobs :
2125 build_wolfprovider :
6468 jq
6569
6670 # Trigger Jenkins to build all packages (wolfSSL, OpenSSL, wolfProvider)
67- # Skip for pull_request events as they don't have access to secrets
71+ # Only runs when use_cached_packages is false (nightly builds)
6872 - name : Trigger Jenkins build
69- if : github.event_name != 'pull_request'
73+ if : inputs.use_cached_packages == false
7074 id : trigger
7175 shell : bash
7276 run : |
@@ -194,7 +198,7 @@ jobs:
194198 done
195199
196200 - name : Download all packages from Jenkins
197- if : github.event_name != 'pull_request'
201+ if : inputs.use_cached_packages == false
198202 shell : bash
199203 run : |
200204 echo "Downloading packages from Jenkins build..."
@@ -242,7 +246,7 @@ jobs:
242246 ls -lh ./downloaded-packages/
243247
244248 - name : Setup wolfSSL packages from Jenkins
245- if : github.event_name != 'pull_request'
249+ if : inputs.use_cached_packages == false
246250 run : |
247251 mkdir -p ${{ env.WOLFSSL_PACKAGES_PATH }}
248252
@@ -283,14 +287,59 @@ jobs:
283287 ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
284288
285289 - name : Install wolfSSL packages from Jenkins
286- if : github.event_name != 'pull_request'
290+ if : inputs.use_cached_packages == false
287291 run : |
288292 echo "Installing wolfSSL packages (${{ inputs.fips_ref }})..."
289293 dpkg -i ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb || true
290294 apt-get install -f -y
291295 echo "wolfSSL packages installed successfully:"
292296 dpkg -l | grep wolfssl
293297
298+ # Download pre-built wolfSSL packages from nightly workflow artifacts
299+ - name : Download wolfSSL packages from nightly build artifacts
300+ if : inputs.use_cached_packages == true
301+ uses : dawidd6/action-download-artifact@v6
302+ with :
303+ github_token : ${{ secrets.GITHUB_TOKEN }}
304+ workflow : build-wolfprovider-nightly.yml
305+ branch : ${{ github.ref_name }}
306+ name : debian-packages-${{ inputs.fips_ref }}${{ inputs.replace_default && '-replace-default' || '' }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}
307+ path : /tmp/nightly-packages
308+
309+ - name : Setup wolfSSL packages from nightly artifacts
310+ if : inputs.use_cached_packages == true
311+ run : |
312+ # Move wolfSSL packages to expected directory
313+ mkdir -p ${{ env.WOLFSSL_PACKAGES_PATH }}
314+
315+ # Check if packages exist in structured format (with subdirectories)
316+ if [ -d "/tmp/nightly-packages/wolfssl-packages" ]; then
317+ echo "Found wolfSSL packages in subdirectory"
318+ mv /tmp/nightly-packages/wolfssl-packages/* ${{ env.WOLFSSL_PACKAGES_PATH }}/
319+ elif [ -d "/tmp/nightly-packages" ]; then
320+ echo "Found wolfSSL packages in flat directory"
321+ # Move only wolfSSL packages based on naming pattern
322+ mv /tmp/nightly-packages/libwolfssl* ${{ env.WOLFSSL_PACKAGES_PATH }}/ 2>/dev/null || true
323+ fi
324+
325+ echo "wolfSSL packages from nightly build:"
326+ ls -la ${{ env.WOLFSSL_PACKAGES_PATH }}
327+
328+ - name : Install wolfSSL packages from nightly artifacts
329+ if : inputs.use_cached_packages == true
330+ run : |
331+ echo "Installing wolfSSL packages from nightly build (${{ inputs.fips_ref }})..."
332+
333+ if [ -n "$(ls -A ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb 2>/dev/null)" ]; then
334+ dpkg -i ${{ env.WOLFSSL_PACKAGES_PATH }}/*.deb || true
335+ apt-get install -f -y
336+ echo "wolfSSL packages installed successfully:"
337+ dpkg -l | grep wolfssl
338+ else
339+ echo "ERROR: No wolfSSL packages found!"
340+ exit 1
341+ fi
342+
294343 - name : Checkout wolfProvider
295344 uses : actions/checkout@v4
296345 with :
@@ -315,14 +364,14 @@ jobs:
315364 ${{ inputs.replace_default && '--replace-default' || '' }}
316365
317366 - name : Organize packages into directories
318- if : github.event_name != 'pull_request'
367+ if : inputs.use_cached_packages == false
319368 run : |
320369 # Create package directories
321370 mkdir -p ${{ env.WOLFSSL_PACKAGES_PATH }}
322371 mkdir -p ${{ env.OPENSSL_PACKAGES_PATH }}
323372 mkdir -p ${{ env.WOLFPROV_PACKAGES_PATH }}
324373
325- echo "Organizing packages..."
374+ echo "Organizing packages from Jenkins build ..."
326375 # Copy wolfSSL packages (libwolfssl*)
327376 cp ./downloaded-packages/libwolfssl* ${{ env.WOLFSSL_PACKAGES_PATH }}/ 2>/dev/null || echo "No wolfSSL packages found"
328377
@@ -341,9 +390,9 @@ jobs:
341390 echo "wolfProvider packages:"
342391 ls -lh ${{ env.WOLFPROV_PACKAGES_PATH }} 2>/dev/null || echo " (none)"
343392
344- # Save all packages as artifacts for consumers
393+ # Save all packages as artifacts for consumers (only for Jenkins builds/nightly)
345394 - name : Upload all packages (wolfSSL, OpenSSL, wolfProvider)
346- if : github.event_name != 'pull_request'
395+ if : inputs.use_cached_packages == false
347396 uses : actions/upload-artifact@v4
348397 with :
349398 name : debian-packages-${{ inputs.fips_ref }}${{ inputs.replace_default && '-replace-default' || '' }}-${{ inputs.wolfssl_ref }}-${{ inputs.openssl_ref }}
0 commit comments