Skip to content

Commit 9cc7300

Browse files
committed
ci(release): add canary upgrade coverage
The release canary now exercises both install paths for dev artifacts: a clean install of the rolling dev release, and an upgrade from the latest stable release to dev. The upgrade jobs catch package-manager regressions that only appear when replacing an installed stable package, while the clean-install jobs keep coverage for first-time dev installs. Installer sourcing now follows the release under test. Stable installs use STABLE_INSTALL_SH_URL, which always points at main/install.sh, so the canary does not use a new dev installer to install an older stable release. Dev installs use DEV_INSTALL_SH_URL: automatic workflow_run canaries source install.sh from the moving dev tag, while manual dispatches source it from the dispatched branch ref so workflow and dev installer changes can be tested before they merge. Signed-off-by: Kris Hicks <khicks@nvidia.com>
1 parent 4e944c2 commit 9cc7300

2 files changed

Lines changed: 328 additions & 22 deletions

File tree

.agents/skills/test-release-canary/SKILL.md

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ on:
3333
- **Automatic.** Every successful `Release Dev` run (on `main` or a manual dispatch of Release Dev) fires the canary. Each job gates on `github.event.workflow_run.conclusion == 'success'` so a failed Release Dev does not run the canary.
3434
- **Manual.** `workflow_dispatch` lets you run the canary on demand against any branch's workflow definition.
3535

36-
When dispatched manually, `github.event.workflow_run.head_sha` is empty and the workflow falls back to `github.sha` (the branch tip) for the `install.sh` URL.
36+
Stable installs use `STABLE_INSTALL_SH_URL`, which always points at
37+
`main/install.sh`. Dev installs use `DEV_INSTALL_SH_URL`: automatic runs point
38+
at the moving `dev` tag so the installer matches the published development
39+
release, while manual dispatches use the dispatched ref name so branch changes
40+
to the canary or dev installer can still be exercised.
3741

3842
## Manual dispatch
3943

@@ -59,9 +63,12 @@ gh run view <run-id> --log-failed
5963

6064
## Iterating on the canary itself
6165

62-
When you change `release-canary.yml` on a branch, a manual dispatch on that branch tests *your branch's workflow logic* against *main's published artifacts* (`0.0.0-dev` chart, `:dev` images, latest tagged install.sh assets). This is what you want for iterating on the canary — you're validating that the canary still works against known-good artifacts.
66+
When you change `release-canary.yml` on a branch, a manual dispatch on that branch tests *your branch's workflow logic* against *main's published stable artifacts* and the current published dev artifacts (`0.0.0-dev` chart, `:dev` images). This is what you want for iterating on the canary — you're validating that the canary still works against known-good artifacts.
6367

64-
Note `install.sh` is pulled from `raw.githubusercontent.com/NVIDIA/OpenShell/${head_sha}/install.sh`, so changes to `install.sh` on your branch *are* exercised even though the binaries it downloads are from the latest public tag.
68+
Note stable package installs always pull `install.sh` from `main`, while dev
69+
package installs pull `install.sh` from the dispatched branch ref for manual
70+
runs. Changes to dev installer behavior on your branch are exercised without
71+
using that new installer to install an older stable release.
6572

6673
## Testing artifacts from a specific SHA
6774

0 commit comments

Comments
 (0)