ci: migrate release and image-build workflows to shared reusable workflows#28
Merged
Merged
Conversation
…flows Replace the hand-rolled release workflow with a thin caller of nebari-dev/.github pack-release.yaml@v1 for the auth-fastapi example, dropping the self-hosted gh-pages Helm index in favor of syncing to the central nebari-dev/helm-repository. Replace build-image.yaml with build-images.yaml calling pack-build-image.yaml@v1 (GHCR + Quay, sha-<short> + latest), triggered on Chart.yaml bumps so the release commit produces the sha-pinned image the release workflow references. Document the manual Quay image-repository creation step (the shared workflow does not create Quay repos). Also update the image path and other stale references for the repo rename (nebari-software-pack-template -> software-pack-template). Closes #27
|
📄 Docs preview for |
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.
What & why
Migrates the template's release and image-build workflows off their hand-rolled implementations onto the shared reusable workflows in
nebari-dev/.github, matching whatllm-serving-packuses. The template is the canonical copy-paste reference for pack authors, so it should demonstrate the standardized release-engineering pattern.Closes #27.
Changes
release.yaml→ thin caller ofnebari-dev/.github/.github/workflows/pack-release.yaml@v1for theauth-fastapiexample (the only example with a first-party image, so the one that meaningfully exercisestag-pathspinning). Triggers on push tomainwhenexamples/auth-fastapi/chart/Chart.yamlchanges. Drops the self-hostedgh-pagesHelm index in favor of syncing to the centralnebari-dev/helm-repository.build-image.yaml→build-images.yaml→ single job callingpack-build-image.yaml@v1(copies the llm-serving-pack structure). Publishes to GHCR + Quay withsha-<short>+latest; also triggers on the chart'sChart.yamlso the release commit produces the sha-pinned image the release workflow references.software-pack-template. Updatedexamples/auth-fastapi/chart/values.yamlimage.repositoryand the local build/load tags intest.yaml/test-integration.yamlto the new GHCR path, plus README badges/file-tree/docker runexamples, the auth-fastapi README, and the two docs "use this template" links.CF_PROJECTin the docs workflows is intentionally left unchanged (the Cloudflare project name is independent of the GitHub repo name).examples/auth-fastapi/chart/Chart.yamlversion0.1.0 → 0.1.1, to exercise the release pipeline on merge (see Notes).Manual prerequisite (official packs)
The shared image workflow does not create Quay repositories. Before the first image push, a maintainer must create
quay.io/nebari/software-pack-template-auth-fastapi-exampleunder thenebariorg and grant the CI robot write access (public if the pack is public). GHCR auto-creates on push. This is documented in the README "Build Images" section. TheNEBARI_HELM_REPO_TOKEN,QUAY_TOKEN, andQUAY_USERNAMEsecrets are provided organizationally to public nebari-dev repos.Verification
actionlintclean on all changed workflows.helm lintpasses (NebariApp disabled and enabled);helm templaterenders the new image path;helm packagesucceeds.Notes
Chart.yamlto0.1.1to exercise the release pipeline end-to-end. Squash-merging tomainwill therefore (1) runbuild-images.yaml, publishing the auth-fastapi image to the new GHCR + Quay paths atsha-<merge-commit>, and (2) runrelease.yaml, creating a GitHub Releasemy-pack-0.1.1and opening a sync-chart PR againstnebari-dev/helm-repositoryseedingcharts/my-pack.chart-nameis the placeholdermy-pack, so thenebari-dev/helm-repositorysync PR is a smoke-test artifact: it should be closed, not merged (my-packis not a distributable chart). It is human-gated, so nothing publishes toquay.io/nebari/chartsunless that PR is merged.auth-fastapiis wired to releases;basic-nginx(upstream image) andwrap-existing-chart(podinfo subchart) have no first-party image to pin.