Skip to content

feat!: v2 — function-named actions + shared building blocks + hardening#4

Merged
tarpanpathak merged 1 commit into
mainfrom
feat/v2-functional-actions
May 22, 2026
Merged

feat!: v2 — function-named actions + shared building blocks + hardening#4
tarpanpathak merged 1 commit into
mainfrom
feat/v2-functional-actions

Conversation

@tarpanpathak
Copy link
Copy Markdown
Contributor

Summary

v2 of the library. Each action is named for its pipeline function; the language/tool is pluggable behind inputs and a runner contract.

  • Collapsed per-stack duplicates: build (was frontend/backend/mobile-build), deploy (was the three deploys), verify (mobile-checks), plan/apply (infra-plan/apply), notify (announce).
  • Shared building blocks: auth (GCP/AWS OIDC) and setup (runtime + deps + optional EAS login), composed by the phase actions — each provisioning step defined once.
  • No forced Makefile: build/deploy/plan/apply take a run/run-* command or a runner (default make). All interpolated values go through env: (no ${{ }} in run scripts).
  • release.yml -> version.yml: owns the rc-vs-stable decision via default-branch detection (removes the caller ternary footgun); verifies the semrel binary checksum.
  • Hardening: third-party actions SHA-pinned + Dependabot; README folds in usage examples and the runner contract.

Breaking

Action paths and several inputs change. v1 stays frozen; the v1->v2 map goes in the v2.0.0 release notes. Internal action refs use @v2, so they resolve once the v2 tag is moved after merge.

Test plan

  • lint check green (actionlint + composite shellcheck)
  • After merge: tag v2.0.0, move v2, smoke-test on warehouse-tablet-app

Restructure the library so each action is named for its pipeline function, with
the language/tool pluggable behind inputs and a runner contract.

- Collapse per-stack actions: frontend/backend/mobile-build -> build;
  frontend/backend/mobile-deploy -> deploy; mobile-checks -> verify;
  infra-plan/infra-apply -> plan/apply; announce -> notify.
- Extract shared building blocks composed by the phase actions: auth (GCP/AWS
  OIDC) and setup (runtime + deps + optional EAS login). Each provisioning step
  is now defined once.
- No forced Makefile: build/deploy/plan/apply take a `run`/`run-*` command or a
  `runner` (default make). All interpolated values pass via env (no ${{ }} in
  run scripts).
- release.yml -> version.yml: owns the rc-vs-stable decision via default-branch
  detection (kills the caller ternary footgun); verifies the semrel binary
  checksum.
- Harden: third-party actions SHA-pinned (+ Dependabot), README folds in usage
  examples and the runner contract.

BREAKING CHANGE: action paths and several inputs change. See the v2.0.0 release
notes for the v1 -> v2 migration map. v1 stays frozen for un-migrated callers.
@tarpanpathak tarpanpathak self-assigned this May 22, 2026
@tarpanpathak tarpanpathak merged commit 13eb8a6 into main May 22, 2026
1 check passed
@tarpanpathak tarpanpathak deleted the feat/v2-functional-actions branch May 22, 2026 04:57
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