Skip to content

feat: implement release train and reusable rule workflows#68

Merged
Sandy-at-Tazama merged 3 commits intodevfrom
feat/release-train
Apr 4, 2026
Merged

feat: implement release train and reusable rule workflows#68
Sandy-at-Tazama merged 3 commits intodevfrom
feat/release-train

Conversation

@Justus-at-Tazama
Copy link
Copy Markdown
Contributor

Summary

Implements the full release pipeline described in #66.

Changes

File Type Notes
version-check.yml New Gates PRs to main; fails if package.json version contains -
publish.yml Replaced Node 20, checkout@v4, push:main trigger, no token leak, no GITHUB_TOKEN shadow
package-rule-rc.yml New Reusable workflow_call for RC Docker builds
package-rule.yml New Reusable workflow_call for stable Docker builds
release-train.yml New workflow_dispatch on dev; resolves rc deps, bumps version, Verified API commit, opens PR
sync-workflows.yml Restructured Removed SPECIFIC_FILES/SPECIFIC_REPOS; in_list() helper; printf-based stub-stamping for all 33 rule repos

Security improvements (over previous publish.yml)

  • Removed cat .npmrc token exposure
  • Removed job-level GITHUB_TOKEN shadowing
  • Explicit NODE_AUTH_TOKEN per step only
  • Version read from checked-out package.json (no GitHub API call)
  • npm ci (not npm install with lock deletion)
  • Removed Node 16 (EOL) and checkout@v3

Validation

All 6 files pass actionlint with zero warnings.

Addresses #66.

@github-actions github-actions Bot added the enhancement New feature or request label Apr 4, 2026
@Justus-at-Tazama Justus-at-Tazama force-pushed the feat/release-train branch 5 times, most recently from cfc6b6b to a06cefc Compare April 4, 2026 18:34
- Add version-check.yml: gates PRs to main; fails if package.json version
  contains a prerelease suffix. Companion to publish.yml push:main trigger.

- publish.yml: full replacement  removed Node 16, checkout@v3, auto-
  versioning via commit message parsing, version-bump PR creation,
  cat .npmrc token leak, and job-level GITHUB_TOKEN shadow. Replaced
  with canonical form: @frmscoe scope, Node 20, checkout@v4, setup-node@v4,
  push: branches: [main] + workflow_dispatch, explicit NODE_AUTH_TOKEN.

- Add package-rule-rc.yml: reusable workflow_call for RC Docker builds.
  Inputs: rule_number, rule_org. Fixes: version from package.json (no
  GitHub API call), npm ci, no cat .npmrc, no job-level GITHUB_TOKEN
  shadow, correct sed patterns, versioned + :rc tags.

- Add package-rule.yml: reusable workflow_call for stable Docker builds.
  Same fixes; Docker tags: VERSION + :latest; version prerelease guard.

- Add release-train.yml: workflow_dispatch on dev with version input.
  Validates clean semver, resolves internal @frmscoe rc deps to stable
  (pinned and range-with-rc patterns), bumps version, regenerates
  package-lock.json, commits via GitHub API (Verified commit), opens
  PR to main.

- sync-workflows.yml: full restructure. Removed SPECIFIC_FILES /
  SPECIFIC_REPOS variables (all rule repos handled identically). Added
  in_list() helper, temp-workflows bundle outside copy loop, printf-based
  stub-stamping for all 33 rule repos with rule_org: frmscoe.

Addresses #66.
…root files

- .github/CODEOWNERS: replace individual usernames with team handles
  (@tazama-lf/core-codeowners and @tazama-lf/community-codeowners) to
  align with the tazama-lf standard and avoid hard-coding personal accounts
- Delete CHANGELOG.md and VERSION from repo root (not used; version is
  managed in individual package.json files)
frmscoe/workflows receives workflow changes via sync-workflows.yml in
tazama-lf/workflows. Direct edits here will be overwritten on next sync.
All changes must originate in tazama-lf/workflows.
@Sandy-at-Tazama Sandy-at-Tazama merged commit e044398 into dev Apr 4, 2026
2 checks passed
@Sandy-at-Tazama Sandy-at-Tazama deleted the feat/release-train branch April 4, 2026 19:22
Justus-at-Tazama added a commit that referenced this pull request Apr 8, 2026
Applies all changes from tazama-lf/workflows PR #76 (workflow audit fixes - batch 1)
to frmscoe/workflows. Changes are synced verbatim from the canonical source.

- fix(njsscan): fix SARIF upload guard, category, upgrade upload-sarif v4 (#68)
- fix(gpg-verify): make curl error handler reachable under bash -e (#69)
- fix(dco-check, gpg-verify): replace mutable branch refs with immutable SHAs (#70)
- fix(package-rule): add ref guard to prevent push from non-canonical branches (#71)
- fix(gpg-verify): rename workflow to Signature Verify, update header comment (#72)
- fix(package-rule): pass GH_TOKEN to docker build via BuildKit secret (#73)
- fix(sbom): pass GH_TOKEN to docker build via BuildKit secret (#74)
- fix(dockerfile-linter): skip hadolint and upload when no Dockerfile present (#75)
- fix(dockerfile-linter, sbom): address CodeRabbit review findings

Signed-off-by: Justus-at-Tazama <jortlepp@contractor.linuxfoundation.org>
Justus-at-Tazama added a commit that referenced this pull request Apr 8, 2026
Applies all changes from tazama-lf/workflows PR #76 (workflow audit fixes - batch 1)
to frmscoe/workflows. Changes are synced verbatim from the canonical source.

- fix(njsscan): fix SARIF upload guard, category, upgrade upload-sarif v4 (#68)
- fix(gpg-verify): make curl error handler reachable under bash -e (#69)
- fix(dco-check, gpg-verify): replace mutable branch refs with immutable SHAs (#70)
- fix(package-rule): add ref guard to prevent push from non-canonical branches (#71)
- fix(gpg-verify): rename workflow to Signature Verify, update header comment (#72)
- fix(package-rule): pass GH_TOKEN to docker build via BuildKit secret (#73)
- fix(sbom): pass GH_TOKEN to docker build via BuildKit secret (#74)
- fix(dockerfile-linter): skip hadolint and upload when no Dockerfile present (#75)
- fix(dockerfile-linter, sbom): address CodeRabbit review findings

Signed-off-by: Justus-at-Tazama <jortlepp@contractor.linuxfoundation.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants