Skip to content

feat(workflows): add release-please + commitlint reusable workflows (WG-86)#38

Merged
jr200 merged 1 commit into
masterfrom
feat/wg-86-release-please-reusable
Apr 21, 2026
Merged

feat(workflows): add release-please + commitlint reusable workflows (WG-86)#38
jr200 merged 1 commit into
masterfrom
feat/wg-86-release-please-reusable

Conversation

@jr200

@jr200 jr200 commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

Extracts two reusable workflows from the inline whengas-ui bootstrap (validated in whengas/whengas-ui#42, release cycle around v0.3.10):

  • `release_please.yaml` — wraps `googleapis/release-please-action@v4` with a GitHub App installation token (so created tags fire downstream workflows, bypassing the GITHUB_TOKEN anti-recursion rule). Exposes `release_created`, `tag_name`, `sha`, `version` outputs so callers can chain docker builds, release-asset uploads, etc.
  • `lint_commits.yaml` — wraps `wagoid/commitlint-github-action@v6` for Conventional Commit enforcement on PRs.

Linear: https://linear.app/whengas/issue/WG-86

How callers use these

Release-please caller (per repo):
```yaml
name: release-please
on:
push:
branches: [master]
jobs:
release:
uses: jr200-labs/github-action-templates/.github/workflows/release_please.yaml@master
with:
release-type: node # or python / go / simple
secrets:
app_private_key: ${{ secrets.INTEGRATION_APP_PRIVATE_KEY }}
dispatch-docker-build:
needs: release
if: needs.release.outputs.release_created == 'true'
runs-on: ubuntu-latest
steps:
- ... # repo-specific dispatch
```

Caller repo must contain:

  • `release-please-config.json`
  • `.release-please-manifest.json` (seeded with current version)

Commitlint caller (usually added to existing ci.yaml):
```yaml
jobs:
commitlint:
uses: jr200-labs/github-action-templates/.github/workflows/lint_commits.yaml@master
```

Caller repo must contain:

  • `commitlint.config.mjs` with `export default { extends: ['@commitlint/config-conventional'] }`

Test plan

  • Merge this PR
  • Follow-up whengas-ui PR converts inline release-please.yaml to call this reusable workflow (and adds commitlint)
  • Validate inline-vs-reusable produce same output on test commits
  • Roll out to remaining whengas + jr200-labs repos (Python uv, Go)

… (WG-86)

- release_please.yaml: wraps googleapis/release-please-action@v4 with a
  GitHub App installation token so tags it creates trigger downstream
  workflows. Exposes release_created / tag_name / sha / version outputs
  so callers can chain their own docker build, release publish, etc.
- lint_commits.yaml: wraps wagoid/commitlint-github-action@v6 for
  Conventional Commit enforcement on PRs. Caller repos ship a
  commitlint.config.mjs at the root.

Validated inline in whengas/whengas-ui; see PR #42 and release cycle
around v0.3.10. This commit extracts the pattern for reuse across the
other whengas + jr200-labs repos.
@jr200 jr200 merged commit 000a1e8 into master Apr 21, 2026
2 checks passed
@jr200 jr200 deleted the feat/wg-86-release-please-reusable branch April 21, 2026 13:00
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