Skip to content

Add actions/worker-image: create/update/no-op composite action for the shared LabVIEW worker image - #41

Open
antsundq wants to merge 4 commits into
elijah286:mainfrom
antsundq:feat/worker-image-action
Open

Add actions/worker-image: create/update/no-op composite action for the shared LabVIEW worker image#41
antsundq wants to merge 4 commits into
elijah286:mainfrom
antsundq:feat/worker-image-action

Conversation

@antsundq

Copy link
Copy Markdown
Contributor

Motivation

In order to use this projects capabilities as modules or components in a Github Actions workflow, the actions needs to be callable as composite actions through the using keyword. I made a PR to support running unit tests in a docker image in this way, but there is currently no way to build the custom image required for this. This PR resolves this.

Summary

Adds actions/worker-image, a composite action that builds (or reuses) the LabVIEW CI worker image other actions (unit-tests, vi-analyzer, ...) pull and run against — currently nothing produces that image in one step.

It's create / update / no-op, not "always rebuild": every input affecting the image's content is hashed into a deterministic tag, and crane digest checks the registry for that exact tag before building. Found → no-op (just retag). Not found → build (create or update). This reuses build-labview-image.yml's existing content-hash scheme; the registry existence check is the one new mechanism.

Always acts as a client of the shared LCWC base image (never builds/publishes the base itself). No .github/labview-ci.yml parsing — caller passes an explicit deps-dir input, matching every other composite action here. Windows-only, matching masscompile/vi-analyzer/unit-tests.

Files (all new, under actions/worker-image/)

action.yml (new), plus copies of existing vendored files: Dockerfile, install-vipc.ps1, ci-tooling.vipc (baked in by default so built images work with actions/unit-tests out of the box), ensure-docker.ps1 (waits out a known intermittent windows-2022 Docker-daemon-not-ready issue).

Test plan

End-to-end verified against lunit-integration-test — create, no-op, update, determinism, and interop with actions/unit-tests:

antsundq added 4 commits July 28, 2026 10:09
… calls

The 'not found' case from crane digest is how create/update is detected,
but it left $LASTEXITCODE non-zero through Write-Host/Out-File (which
don't touch it), so GitHub Actions' pwsh wrapper failed the step on
every single create/update run before Build and push ever executed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant