Add artifact smoke-test jobs to daily and stable build workflows#2
Draft
Copilot wants to merge 3 commits into
Draft
Add artifact smoke-test jobs to daily and stable build workflows#2Copilot wants to merge 3 commits into
Copilot wants to merge 3 commits into
Conversation
Copilot
AI
changed the title
[WIP] Add artifact smoke tests to GitHub Actions workflows
Add artifact smoke-test jobs to daily and stable build workflows
May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This adds post-build smoke tests to the existing GitHub Actions workflows so built artifacts are validated directly from workflow artifacts, without depending on S3. Daily builds now test both
nightlyandt8, and stable builds test the manual release output.Artifact handoff
actions/upload-artifact@v4to:build-nightlybuild-t8build-stableoutput/directory under a job-specific artifact name:nightly-outputt8-outputstable-outputDaily workflow smoke tests
test-nightly(needs: build-nightly)test-t8(needs: build-t8)oaf-linux-x86_64oaf-alpine-x86_64insidealpine:latestStable workflow smoke tests
test-stable(needs: build-stable)Smoke-test coverage
-v-c 'print("ok")'--installand exposeojobWorkflow behavior
Original prompt
Goal
Add artifact smoke tests to the existing GitHub Actions build workflows in this repository, wired to run after each build job completes.
Background
The repo builds self-extracting shell scripts for OpenAF across multiple OS/arch combos (linux-x86_64, linux-arm, linux-aarch64, mac-x86_64, mac-aarch64, alpine-x86_64, alpine-aarch64). The two relevant workflows are:
.github/workflows/buildDaily.yaml— daily schedule; hasbuild-nightlyandbuild-t8jobs.github/workflows/buildStable.yaml— manual dispatch; hasbuild-stablejobEach build job uses
openaf/ojob-action@v7to runbuildNightly.yaml/buildT8.yaml/buildStable.yaml, then uploads results to S3 viaops.yaml.Changes Required
1. Upload artifacts in each build job
In each build job (after "Prepare output" / before "Copy build result"), add an
actions/upload-artifact@v4step to upload theoutput/directory. This allows the test job to consume artifacts without needing S3 credentials.2. Add test jobs to
buildDaily.yamlAdd two new test jobs:
test-nightlywithneeds: build-nightlytest-t8withneeds: build-t8Each test job should:
ubuntu-latestactions/download-artifact@v4oaf-linux-x86_64(natively available on ubuntu runner):chmod +x oaf-linux-x86_64./oaf-linux-x86_64 -v(should exit 0 and print a version string)./oaf-linux-x86_64 -c 'print("ok")'(should print "ok")./oaf-linux-x86_64 --installthen verifyojobsymlink or equivalentalpine:latestcontainer) foroaf-alpine-x86_64:docker runstep to test./oaf-alpine-x86_64 -vinside an Alpine container3. Add a test job to
buildStable.yamlAdd
test-stablewithneeds: build-stable, same structure as above.4. S3 upload should still happen
The existing "Copy build result" (S3 upload) step should remain and still run after the build. The test job runs in parallel or after, but a test failure should be visible. Use
if: always()or keep default behaviour so failures are reported clearly.Notes
actions/upload-artifact@v4andactions/download-artifact@v4.nightly-output,t8-output,stable-output.oaf-linux-x86_64natively andoaf-alpine-x86_64via Docker. Skip ARM/Mac for now.The following is the prior conversation context from the user's chat exploration (may be truncated):
User: Would it be possible to add artifact tests on this repo and wire them to the existing build GitHub actions?
Assistant: Let me explore the repository's structure and existing workflows first.
Assistant: Yes, absolutely! Here's what I found after reviewing the repo structure and existing workflows:
Current Setup
.github/workflows/buildDaily.yaml— Runs on a daily schedule; buildsnightlyandt8variants usingbuildNightly.yaml/buildT8.yamlviaopenaf/ojob-action@v7, then uploads to S3..github/workflows/buildStable.yaml— Manual dispatch only; builds stable artifacts, uploads to S3.common.yaml— Shared build logic producing self-extracting shell scripts for multiple OS/arch combos:linux-x86_64,linux-arm,linux-aarch64,mac-x86_64,mac-aarch64,alpine-x86_64,alpine-aarch64.Proposed Artifact Test Approach
Here's a plan for adding artifact tests:
1. Upload artifacts in the build jobs
Add an
actions/upload-artifactstep after "Prepare output" in each build job, so the test jobs can consume them without needing S3 credentials.2. Add a
testjob per workflow withneeds: build-*Wire a test job to run after the build succeeds. On the test job:
actions/download-artifact./oaf-linux-x86_64 -v— verify it extracts and prints a version./oaf-linux-x86_64 -c 'print("ok")'— verify JS execution worksojob,opack,oafc) work after installruns-on: ubuntu-latestwith QEMU (docker/setup-qemu-action) or test onlylinux-x86_64natively and others with Docker.alpine:latest) to test the Alpine artifact.3. Workflow structure example
Would you like me to open a pull request implementing this? A few clarifying questions first:
oaf -vsmoke test,...This pull request was created from Copilot chat.