Skip to content

feat: ✨ adopt shared release-promote workflow, bump devcontainer features to v8 - #10

Merged
tomgrv merged 3 commits into
developfrom
claude/multi-repo-consistency-release-7se0jy
Sep 3, 2026
Merged

feat: ✨ adopt shared release-promote workflow, bump devcontainer features to v8#10
tomgrv merged 3 commits into
developfrom
claude/multi-repo-consistency-release-7se0jy

Conversation

@tomgrv

@tomgrv tomgrv commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Part of a coordinated consistency pass across tomgrv/devcontainer-features (#143), tomgrv/actions (#77, merged, released as v2.22.0), tomgrv/scripts (#3, merged, released as v0.3.0), and this repo.

  • Bumps the 4 pinned devcontainer feature refs (ai-coding, githooks, gitutils, gitversion) in .devcontainer/devcontainer.json from :7 to :8, matching what those features have actually been at for a while.
  • Switches release-main.yml to check out the repo and call tomgrv/actions' new release-promote composite action as a step, pinned to v2.22.0 and pulling git-release-beta/git-release-prod from tomgrv/scripts@v0.3.0 — the same path every repo in this family now uses — instead of its own drifted git beta/git prod copy.
  • Drops the "🎈 Beta"/"🚀 Prod" local-CLI VS Code tasks now that release is fully driven from GitHub's "Run workflow" button — git-flow/gitutils are still installed locally for the "🚑 Hotfix" task and everyday git align/git amend/etc. shortcuts, just not for cutting a release anymore.
  • Adds a "Releasing" section to the README documenting the new flow and pointing at tomgrv/actions's tag/branch-protection bypass checklist.

Known CI failure (not caused by this PR)

validate-pr-secret fails on this PR — gitleaks/gitleaks-action requires a GITLEAKS_LICENSE org secret that isn't set for perspikapps, and has been failing on every push to main and every other branch for days. See the PR comment for details; needs an org secret, not a code fix.

Cross-repo dependency

release-main.yml now references the released tags: tomgrv/actions/release-promote@v2.22.0 and scripts-ref: v0.3.0. Both sibling PRs (tomgrv/actions#77, tomgrv/scripts#3) have merged and tagged — their release-main workflows were exercised live end-to-end (real, non-dry-run releases) before those tags were cut.

Test plan

  • npx bats tests/ — all 20 pass (unaffected by this change, run as a regression check)
  • .devcontainer/devcontainer.json, the workflow YAML, and .vscode/tasks.json all parse cleanly
  • npx prettier --check clean
  • uses:/scripts-ref pinned to released tags
  • Apply the tag/branch-protection bypass on this repo's main per tomgrv/actions's checklist before relying on this workflow for a real release

🤖 Generated with Claude Code

https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix

…es to v8

Bumps the 4 pinned devcontainer feature refs (ai-coding, githooks,
gitutils, gitversion) in .devcontainer/devcontainer.json from :7 to :8,
matching what those features have actually been at for a while.

Switches release-main.yml to a thin wrapper calling tomgrv/actions'
shared release-promote.yml reusable workflow (same path every repo in
this family now uses) instead of its own drifted git-beta/git-prod
copy, and drops the Beta/Prod local-CLI VS Code tasks now that release
is fully driven from GitHub's "Run workflow" button. Adds a short
"Releasing" section to the README documenting the new flow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix
@github-actions github-actions Bot changed the title feat: adopt shared release-promote workflow, bump devcontainer features to v8 feat: ✨ adopt shared release-promote workflow, bump devcontainer features to v8 Sep 3, 2026

tomgrv commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

validate-pr-secret is failing on this PR (gitleaks/gitleaks-action@v2: "missing gitleaks license... [perspikapps] is an organization. License key is required."), but this isn't caused by this PR's diff — .github/workflows/validate-pr-secret.yml isn't touched here, and the same check has been failing on every push to main and every other open branch/PR for the past several days (checked workflow run history: failing on main pushes on 2026-09-02 and 2026-08-31, and on every other branch in between). It's a missing GITLEAKS_LICENSE org secret, not something a re-run or a code change in this PR can fix.

No fix exists yet in tomgrv/actions/check-secret to port in (it runs gitleaks unconditionally, with no skip-when-license-absent path) — adding one would be a deliberate change to that shared action, out of scope for this PR. Skipping this re-run since the failure is deterministic (missing secret), not a flake.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix


Generated by Claude Code

tomgrv/actions restructured release-promote from a workflow_call
reusable workflow into a composite action (release-promote/action.yml).
Update release-main.yml to match: checkout, then
`uses: tomgrv/actions/release-promote@ref` as a normal step, instead of
delegating the whole job via workflow_call. Also fixes the README's
"Releasing" section, which still described the old reusable-workflow
shape.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix
tomgrv added a commit to tomgrv/scripts that referenced this pull request Sep 3, 2026
…iner-features (#3)

## Summary

Part of a coordinated consistency pass across
`tomgrv/devcontainer-features`, `tomgrv/actions`, `tomgrv/scripts`, and
`perspikapps/vps`. Companion PRs: tomgrv/actions#77,
tomgrv/devcontainer-features#143, perspikapps/vps#10.

- Migrates the ~32 `git-*` scripts formerly under
`devcontainer-features/src/gitutils/bin/` into individual workspace
packages here (`/{run.sh,package.json,README.md,test.bats}`), mirroring
the exact migration `common-utils` already went through. One source of
truth for the script implementations now, fetched via `zz_use` instead
of duplicated per consumer.
- Switches this repo's own `release-main.yml` to call `tomgrv/actions`'
new `release-promote` composite action as a step, dogfooding the same
release path every consumer repo now uses.
- Adds a "Git utilities" table to the README documenting the new
packages.
- **Adds a `.gitversion` config file at repo root.**
`git-release-beta`/`git-release-prod` call `gv -showvariable
MajorMinorPatch`, which hardcodes `-config ".gitversion"` — this repo
never had that file (no devcontainer here to deploy it via the
`gitversion` feature's configure step). Content matches
`tomgrv/actions/.gitversion`, the same bump-message rules used across
the rest of the family.

## Cross-repo dependency

`tomgrv/actions`' `release-promote` action (this PR's release-main.yml
step depends on it, including its new `setup-gitversion` sub-step — see
tomgrv/actions#77) and `devcontainer-features`' `gitutils` feature (now
depends on the packages added here) are being updated in sibling PRs on
the same branch name. Until those merge and tag, the workflow points at
`tomgrv/actions@claude/multi-repo-consistency-release-7se0jy` — marked
with a `TODO` to pin to a released tag afterward. This repo's own
`release-main.yml` has a chicken-and-egg problem releasing itself (it
needs its own `git-release-beta`/`git-release-prod` before any tag of
this repo exists) — the operational plan for the actual release run pins
`scripts-ref` to the merge commit SHA for that one bootstrap run, then
updates it to the real tag afterward.

## Test plan

- [x] `npx bats --recursive .` — all 68 tests pass (32 new + 36
existing)
- [x] Each new script's `run.sh` verified `sh -n` clean via its
`test.bats`
- [x] `npx prettier --check` clean on all new/changed files
- [ ] Bump the workflow's `uses:` ref to a released tag once this merges
and tags

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: bot <bot@example.com>
tomgrv/scripts (v0.3.0) and tomgrv/actions (v2.22.0) have both now
released, so release-main.yml no longer needs to point at the working
branch.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dau8uW2rrctkyAxngdR1ix
@tomgrv
tomgrv marked this pull request as ready for review September 3, 2026 19:51
@tomgrv
tomgrv merged commit 859be9f into develop Sep 3, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants