feat: propagate --dev-spec to dgoss run, ci publish, ci merge, and CI workflows#603
Merged
Conversation
d39e463 to
505dca5
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends support for dispatched development build pinning by propagating --dev-spec (and --dev-channel where relevant) through the Bakery CLI surface and the reusable CI workflows, ensuring consistent target UID resolution across build/test/publish steps when a build uses pinned dev versions.
Changes:
- Added
--dev-channeland--dev-specsupport tobakery dgoss run, and added--dev-specsupport to the deprecatedbakery run dgoss. - Added
--dev-specsupport tobakery ci publishand thebakery ci mergealias. - Updated reusable workflows to forward
--dev-specthrough test and publish steps, and switched goss testing frombakery run dgosstobakery dgoss run.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| posit-bakery/test/cli/test_dev_spec.py | Adds coverage ensuring --dev-spec/BAKERY_DEV_SPEC parsing and forwarding works for dgoss run, deprecated run dgoss, and ci publish. |
| posit-bakery/posit_bakery/plugins/builtin/dgoss/init.py | Adds --dev-channel, deprecated --dev-stream, and --dev-spec options to bakery dgoss run, wiring them into BakerySettings. |
| posit-bakery/posit_bakery/cli/run.py | Adds --dev-spec (envvar + parser callback) to deprecated bakery run dgoss and forwards it to BakerySettings. |
| posit-bakery/posit_bakery/cli/ci.py | Adds --dev-spec to ci publish and ci merge, forwarding into BakerySettings for publish target resolution. |
| .github/workflows/bakery-build.yml | Forwards dev-spec to build/test/push steps and switches testing to bakery dgoss run. |
| .github/workflows/bakery-build-native.yml | Forwards dev-spec to build/test and merge/publish steps and switches testing to bakery dgoss run. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Test Results1 862 tests 1 862 ✅ 8m 21s ⏱️ Results for commit 140c9a8. ♻️ This comment has been updated with latest results. |
23af7ec to
ac7c243
Compare
Wire --dev-channel, --dev-stream (deprecated hidden alias), and --dev-spec through the dgoss run CLI so dev build filtering is available on the canonical goss test command, matching the existing options on deprecated bakery run dgoss. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds the --dev-spec / BAKERY_DEV_SPEC option to both commands so that when a build used --dev-spec to pin a specific dev version, publish and merge can resolve to the same matching UIDs from metadata files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nvoke Replace redundant open with blocks in test_dev_spec_invalid_json_rejected and test_dev_spec_invalid_schema_rejected with calls to the class's _invoke helper, eliminating patch duplication and improving test readability. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace repeated inline dev-spec construction blocks in Build, Test, Push, and Publish steps with a single `Resolve dev-spec` step per job that outputs the resolved JSON string. Downstream steps reference `DEV_SPEC_RESOLVED` via the step output, reducing to a one-liner. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ac7c243 to
c4ffe58
Compare
Pipe the passthrough DEV_SPEC through `jq -c .` to ensure it is always a single compact line, preventing multiline/pretty-printed JSON from breaking the key=value format required by GITHUB_OUTPUT. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
--dev-channeland--dev-spectobakery dgoss run(the canonical goss test command was missing both options that the deprecatedbakery run dgosshad)--dev-specto the deprecatedbakery run dgosscommand--dev-spectobakery ci publishand thebakery ci mergealias, so the config resolves matching target UIDs when a build used a pinned dev versionbakery-build.ymlandbakery-build-native.ymlto forward--dev-specto their test and publish steps, and switched the test step frombakery run dgosstobakery dgoss runTest Plan
TestDgossRunDevSpec(6 tests) — covers--dev-specflag, env var, absent-is-None, invalid JSON, invalid schema,--dev-channelforwardingTestRunDgossDevSpec(5 tests) — same coverage for deprecated commandTestCiPublishDevSpec(5 tests) — same coverage forci publishpython3 -c "import yaml; yaml.safe_load(...)"— both files parse cleanlydevelopment.yml) correctly passes--dev-specthrough the full matrix → build → test → publish chain🤖 Generated with Claude Code