5402: Generate release.json on image build and release tarball#416
Merged
turegjorup merged 1 commit intoApr 30, 2026
Merged
Conversation
Mirrors itk-dev#2. Inlines the .github/Taskfile into github_build_release.yml and aligns its cleanup with .dockerignore. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tuj
approved these changes
Apr 29, 2026
8caf533
into
feature/update-infrastructure-for-mono-repo
18 checks passed
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.
Summary
Both Dockerfiles,
infrastructure/build-n-push.sh, andgithub_build_release.ymlnow writepublic/release.jsonso the client'sassets/shared/release-loader.jsfinds the file at/release.jsoninstead of falling back to defaults. The shape matches the existingdocs/release-example.json:{"releaseTimestamp": 1777459916, "releaseTime": "Wed Apr 29 10:51:56 UTC 2026", "releaseVersion": "3.0.0"}Mirrors itk-dev#2's approach.
What changed
infrastructure/display-api-service/Dockerfile—api_app_builderstage getsARG APP_RELEASE_TIMESTAMP+ARG APP_RELEASE_TIMEand aRUN printf … > public/release.jsonstep after the final composer install.infrastructure/nginx/Dockerfile— same change in its self-containedapi_app_builderstage so the nginx image'spublic/(which is what's actually served) carries the file.infrastructure/build-n-push.sh— capturesRELEASE_TIME="$(date -u)"alongside the existingRELEASE_TIMESTAMP, passes both as build args. Drops the unusedAPP_RELEASE_VERSION(APP_VERSIONcovers it)..github/workflows/build-images.yml— adds aSet release timestampstep that exportsAPP_RELEASE_TIMESTAMPandAPP_RELEASE_TIMEto$GITHUB_ENV, and passes them as build args. Replaces the brokenAPP_RELEASE_TIMESTAMP=${{ github.run_number }}(which was never a unix timestamp)..github/workflows/github_build_release.yml:.github/Taskfile.yml(only consumer of that file).Write release.jsonstep before tarballing.Detect pre-releasestep the workflow was already trying to reference (steps.prerelease.outputs.flag— previously empty). RC tags like3.0.0-RC1now publish as GitHub pre-releases, mirroring theflavor: latest=autorule inbuild-images.yml..dockerignoreminusvendor/andpublic/build/(which the workflow just produced and the tarball needs to ship)..github/Taskfile.yml— removed.Local validation
Built both images from this branch and confirmed
release.jsonis present and correct in both:Test plan
develop→build-images.ymlproduces:developimages that contain/release.jsonwithreleaseVersion: "develop".3.0.0-RC1→:3.0.0-RC1image carriesreleaseVersion: "3.0.0-RC1";github_build_release.ymlpublishes the GitHub Release as a pre-release;:latestis not updated on either side.3.0.0→:3.0.0image carriesreleaseVersion: "3.0.0";github_build_release.ymlpublishes a final (non-pre-) GitHub Release;:latestis updated.assets/shared/release-loader.jsno longer logsCould not find release.json. Returning defaults.in the deployed apps.🤖 Generated with Claude Code