Summary
Migrate the template's release.yaml and image-build workflow off their hand-rolled implementations onto the shared reusable workflows in nebari-dev/.github, matching what llm-serving-pack already uses:
nebari-dev/.github/.github/workflows/pack-release.yaml@v1
nebari-dev/.github/.github/workflows/pack-build-image.yaml@v1
The template is the canonical copy-paste reference for pack authors, so it should demonstrate the current, standardized release-engineering pattern (an easy on-ramp), not a bespoke one.
Note: this pattern only works for official packs in the nebari-dev org. The reusable workflows sync charts into nebari-dev/helm-repository (→ quay.io/nebari/charts) and push images to quay.io/nebari/*, using org-provided secrets (NEBARI_HELM_REPO_TOKEN, QUAY_TOKEN, QUAY_USERNAME). Forks outside the org need their own publishing infrastructure.
Current state
release.yaml: manual workflow_dispatch; helm package → GitHub Release → maintains a self-hosted Helm index on the template's own gh-pages branch. This contradicts the template's own docs, which tell authors to publish to the central nebari-dev.github.io/helm-repository. (The docs site deploys to Cloudflare Pages, so gh-pages is used only for this index.)
build-image.yaml: hand-rolled docker/build-push-action; tags :latest + :<full-sha>; triggers only on examples/auth-fastapi/app/** and the Dockerfile.
Target
release.yaml → thin caller of pack-release.yaml@v1 for the auth-fastapi example (the one example with a first-party image, so the only one that meaningfully exercises tag-paths image pinning). Triggered on push to main when examples/auth-fastapi/chart/Chart.yaml changes.
build-image.yaml → build-images.yaml → single job calling pack-build-image.yaml@v1 (copying the llm-serving-pack structure). Also triggers on the chart's Chart.yaml so the release commit produces the sha-<short7> image the release workflow pins to. image: auth-fastapi-example keeps the GHCR path identical to today's image and to the chart's values.yaml; Quay is added as a mirror.
- Update README + docs to describe the new flow and drop the self-hosted
gh-pages index wording.
Scope notes
- Only
auth-fastapi is wired to releases. basic-nginx (upstream nginx) and wrap-existing-chart (podinfo subchart) have no first-party image to pin and stay as-is.
Prerequisites
NEBARI_HELM_REPO_TOKEN, QUAY_TOKEN, QUAY_USERNAME available to this repo (org-provided to public nebari-dev repos; this repo is public).
Acceptance criteria
Summary
Migrate the template's
release.yamland image-build workflow off their hand-rolled implementations onto the shared reusable workflows innebari-dev/.github, matching whatllm-serving-packalready uses:nebari-dev/.github/.github/workflows/pack-release.yaml@v1nebari-dev/.github/.github/workflows/pack-build-image.yaml@v1The template is the canonical copy-paste reference for pack authors, so it should demonstrate the current, standardized release-engineering pattern (an easy on-ramp), not a bespoke one.
Current state
release.yaml: manualworkflow_dispatch;helm package→ GitHub Release → maintains a self-hosted Helm index on the template's owngh-pagesbranch. This contradicts the template's own docs, which tell authors to publish to the centralnebari-dev.github.io/helm-repository. (The docs site deploys to Cloudflare Pages, sogh-pagesis used only for this index.)build-image.yaml: hand-rolleddocker/build-push-action; tags:latest+:<full-sha>; triggers only onexamples/auth-fastapi/app/**and the Dockerfile.Target
release.yaml→ thin caller ofpack-release.yaml@v1for theauth-fastapiexample (the one example with a first-party image, so the only one that meaningfully exercisestag-pathsimage pinning). Triggered on push tomainwhenexamples/auth-fastapi/chart/Chart.yamlchanges.build-image.yaml→build-images.yaml→ single job callingpack-build-image.yaml@v1(copying thellm-serving-packstructure). Also triggers on the chart'sChart.yamlso the release commit produces thesha-<short7>image the release workflow pins to.image: auth-fastapi-examplekeeps the GHCR path identical to today's image and to the chart'svalues.yaml; Quay is added as a mirror.gh-pagesindex wording.Scope notes
auth-fastapiis wired to releases.basic-nginx(upstreamnginx) andwrap-existing-chart(podinfo subchart) have no first-party image to pin and stay as-is.Prerequisites
NEBARI_HELM_REPO_TOKEN,QUAY_TOKEN,QUAY_USERNAMEavailable to this repo (org-provided to public nebari-dev repos; this repo is public).Acceptance criteria
release.yamlcallspack-release.yaml@v1withchart-path,chart-name,tag-paths,NEBARI_HELM_REPO_TOKEN.build-images.yamlcallspack-build-image.yaml@v1; oldbuild-image.yamlremoved.gh-pagesHelm-index logic removed.helm lint/helm packagesucceed for the auth-fastapi chart.