Skip to content

feat(APP-963): modular release system — design + modules#5

Open
tyhonchik wants to merge 1 commit into
mainfrom
app-963-study-and-design-the-modules-structure-to-release
Open

feat(APP-963): modular release system — design + modules#5
tyhonchik wants to merge 1 commit into
mainfrom
app-963-study-and-design-the-modules-structure-to-release

Conversation

@tyhonchik

@tyhonchik tyhonchik commented Jun 23, 2026

Copy link
Copy Markdown

What & why

APP-963 (SEAL best-practices; blocks SREDO-695/697/698). Every Aragon repo re-implements a near-identical release pipeline. This design-first PR standardises them into loadable modules here, so secrets are handled the same way, the broad-permission Vercel token has one place it can be read, and a fix patches everywhere via one bump.

Deliverables

  • docs/release-design.md — the study/design: scenarios A–D (app / library / backend / indexer), the Build → Test → Release → Deploy spine, the module catalog, the explicit-paths credential model, the security contract, and distribution/versioning. (primary deliverable)
  • steps/ — 12 new composite actions incl. compute-version (the pluggable changesets | semantic-release seam). Scripts are co-located and called via $GITHUB_ACTION_PATH so the actions work cross-repo; generateReleaseSummary no longer hardcodes a repo.
  • .github/workflows/ — reusable workflows: release-start, release-finalize, deploy-vercel, deploy-docker, e2e, release-self.
  • examples/ — per-scenario caller workflows. Plus .github/dependabot.yml and a _selftest smoke workflow.

Key decisions

  • Two version engines stay; the divergence is one pluggable action.
  • Credentials: each repo passes its own op:// paths; one scoped OP_SERVICE_ACCOUNT_TOKEN; no secrets: inherit; inputs validated; third-party actions SHA-pinned.
  • Distribution: semver + moving major (release-self); consumers pin SHAs + Dependabot.

Safety

Additive onlysteps/credential-retrieval (v0.4, in use by app / app-backend / gov-ui-kit) is untouched, so existing @v0.4 SHA pins keep working. Migrating consumers is downstream (SREDO tickets).

Validation

  • actionlint clean; all workflow/action YAML parses; node --check on all scripts.
  • _selftest.yml (manual dispatch) smoke-tests the leaf actions in-repo.

Reviewer notes

  • Self-references inside reusable workflows use aragon/github-templates/steps/*@main during bootstrap (relative ./steps/* would resolve against the caller repo). Pin these to the cut tag/SHA when releasing v0.5.
  • Final SHA-pinning of third-party actions + cutting v0.5 / v1 is for the DevOps owner (CODEOWNER).

…flows)

Design-first deliverable for APP-963: standardise releases across repos around the
Build → Test → Release → Deploy spine, with loadable modules in github-templates.

- docs/release-design.md: scenarios A–D, the 4-step spine, module catalog, the
  explicit-paths credential model + security contract, distribution/versioning.
- steps/: composite actions (setup, compute-version[changesets|semantic-release],
  slack-notify, extract-slack-ts, read-changelog, build-release-notes,
  generate-release-summary, parse-playwright-results, gh-ensure-{pr,tag,release},
  git-ensure-branch). Scripts co-located + referenced via $GITHUB_ACTION_PATH so the
  actions are self-contained across repos; generateReleaseSummary genericised (no
  hardcoded repo).
- .github/workflows/: reusable workflows (release-start, release-finalize,
  deploy-vercel, deploy-docker, e2e, release-self). VERCEL_TOKEN resolved only inside
  deploy-vercel. op:// inputs validated; no secrets: inherit; third-party actions
  SHA-pinned.
- examples/: per-scenario caller workflows. .github/dependabot.yml + _selftest.yml.

Additive only: steps/credential-retrieval (v0.4, live) is untouched, so existing SHA
pins keep working. Consumer migrations are downstream (SREDO-695/697/698).
@tyhonchik tyhonchik requested a review from jjavieralv June 23, 2026 17:04
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.

1 participant