From c294def7ccce1705be55e38e19c7da4f7341c3f4 Mon Sep 17 00:00:00 2001 From: SaelixCode Date: Tue, 24 Mar 2026 19:01:09 -0400 Subject: [PATCH] feat(ci): add release-please automated versioning workflow --- .github/workflows/release-please.yml | 20 ++++++++++++++++++++ .release-please-manifest.json | 3 +++ CHANGELOG.md | 3 +++ package.json | 2 +- release-please-config.json | 22 ++++++++++++++++++++++ 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/release-please.yml create mode 100644 .release-please-manifest.json create mode 100644 release-please-config.json diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..9611caf9 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,20 @@ +name: Release Please + +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - uses: googleapis/release-please-action@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + config-file: release-please-config.json + manifest-file: .release-please-manifest.json diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 00000000..466df71c --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.1.0" +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 9803c796..4c6957fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - **fix(ci):** `docker-publish.yml` was triggered by `release: types: [published]` (GitHub Release event) instead of `push: tags: v*` — pushing a git tag never fired the workflow. Changed trigger to `push: tags: v*` and updated `enable` conditions from `github.event_name == 'release'` to `startsWith(github.ref, 'refs/tags/v')` so any `v*` tag push automatically builds and publishes `latest` + semver tags to Docker Hub without requiring a manual GitHub Release. +### Added +- **feat(ci):** Automated versioning via `release-please` — on every push to `main`, the `release-please` workflow opens or updates a Release PR with a generated CHANGELOG entry and `package.json` version bump. Merging the Release PR creates the `vX.Y.Z` tag which triggers `docker-publish.yml`. Version bumps follow Conventional Commits: `fix:` → patch, `feat:` → minor, `feat!:` / `BREAKING CHANGE:` → major. + --- ## [0.1.0] - 2026-03-24 diff --git a/package.json b/package.json index 8647da7d..9038abcc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sencho", - "version": "1.0.0", + "version": "0.1.0", "description": "", "main": "index.js", "scripts": { diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 00000000..8048e5a9 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "packages": { + ".": { + "release-type": "node", + "bump-minor-pre-major": true, + "changelog-path": "CHANGELOG.md", + "changelog-sections": [ + { "type": "feat", "section": "### Added" }, + { "type": "fix", "section": "### Fixed" }, + { "type": "perf", "section": "### Fixed" }, + { "type": "revert", "section": "### Fixed" }, + { "type": "security", "section": "### Security" }, + { "type": "docs", "section": "### Documentation", "hidden": true }, + { "type": "chore", "section": "### Miscellaneous", "hidden": true }, + { "type": "ci", "section": "### CI/CD", "hidden": true }, + { "type": "refactor", "section": "### Changed", "hidden": true }, + { "type": "test", "section": "### Tests", "hidden": true } + ] + } + } +}