nebari-dev / nebari-dev/software-pack-template
Reference the shared nebari-dev/.github@v1 release workflows instead of shipping copies
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 0
- Forks
- 1
- Avg merge
- 26m
- Merged PRs (30d)
- 1
Description
The org now has shared reusable release workflows in nebari-dev/.github, tagged @v1 (pack-build-image.yaml and pack-release.yaml). nebari-dev/llm-serving-pack is the first consumer, and nebari-dev/data-science-pack migration is tracked in nebari-dev/data-science-pack#180.
This template still ships its own copies of build-image.yaml / release.yaml (and related CI), which every pack generated from it inherits as a copy. Those copies then drift from the shared versions pack-by-pack, which is exactly the problem the extraction was meant to end. The template should instead ship thin callers that uses: the @v1 reusable workflows, so a new pack gets a pointer that tracks fixes centrally rather than a frozen copy.
What this involves
- Replace the copied
build-image.yaml/build-images.yaml/release.yaml(and the bump-image-tags workflow +scripts/bump_image_tags.py, if present) with thin caller workflows modeled onllm-serving-pack's.github/workflows/build-images.yaml+release.yaml, which callnebari-dev/.github/.github/workflows/pack-{build-image,release}.yaml@v1. - Adopt the pin-at-release model: no
bump-image-tags/BOT_PAT; image tags float onmainand are pinned in the published chart at release time. - Forward
secrets.QUAY_USERNAME+secrets.QUAY_TOKENfrom the caller (noteQUAY_USERNAMEis an org secret, not a variable). - Include a
.github/release.ymlfor categorized changelog notes, keyed on the template's standard labels. - Placeholders for the per-pack bits a new pack fills in: the image list (name + build context) for
build-images.yaml, and thechart-path/chart-name/tag-pathsforrelease.yaml.
Blocking considerations (shared with #180)
- Multi-arch:
pack-build-image@v1is single-platform (amd64) via aplatformsinput; it has no native-per-arch digest-merge yet. If template-generated packs commonly need arm64,pack-build-imageneeds a multi-arch mode before the template defaults to it. Scope alongside data-science-pack#180. - Bespoke pin targets: packs that pin more than simple
<component>.image.tagdotted paths (e.g. jupyterhub profile lists) need an extension to the shared pin step or a pack-provided hook.
Doing this in the template propagates the shared pipeline to all future packs by default.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the template’s .github/workflows/build-image.yaml, build-images.yaml, release.yaml, and any bump-image-tags workflow with llm-serving-pack’s caller workflows. Read the shared pack-build-image.yaml and pack-release.yaml inputs, then verify the caller placeholders, forwarded secrets, and .github/release.yml requirements. Done means the template references the shared @v1 workflows without copied pipeline logic, while the multi-arch and bespoke pin-target constraints are resolved or explicitly handled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions
- Domain
- ci-cd, release
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100