From f394e9469ab46f460d574c116822de6a22703ee3 Mon Sep 17 00:00:00 2001 From: boojack Date: Wed, 15 Apr 2026 23:04:10 +0800 Subject: [PATCH] chore: add release-please automation (#5842) --- .github/workflows/build-canary-image.yml | 3 ++ .github/workflows/release-please.yml | 37 ++++++++++++++++++++++++ .github/workflows/release.yml | 4 ++- .release-please-manifest.json | 3 ++ release-please-config.json | 35 ++++++++++++++++++++++ 5 files changed, 81 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/build-canary-image.yml b/.github/workflows/build-canary-image.yml index de8f5919a..15212eca0 100644 --- a/.github/workflows/build-canary-image.yml +++ b/.github/workflows/build-canary-image.yml @@ -8,6 +8,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.repository }} cancel-in-progress: true +permissions: + contents: read + jobs: build-frontend: runs-on: ubuntu-latest diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 000000000..e6cb58c28 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,37 @@ +name: Release Please + +on: + push: + branches: + - main + workflow_dispatch: + +permissions: + contents: write + issues: write + pull-requests: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + release-please: + runs-on: ubuntu-latest + steps: + - name: Check release token + env: + RELEASE_PLEASE_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN }} + run: | + if [ -z "$RELEASE_PLEASE_TOKEN" ]; then + echo "RELEASE_PLEASE_TOKEN must be set to a fine-grained PAT so release-please tags can trigger release.yml." >&2 + exit 1 + fi + + - name: Run release-please + uses: googleapis/release-please-action@v4 + with: + # Use a fine-grained PAT so generated tags trigger release.yml. + token: ${{ secrets.RELEASE_PLEASE_TOKEN }} + config-file: release-please-config.json + manifest-file: .release-please-manifest.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 298266b1d..88c718f27 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,6 +10,9 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +permissions: + contents: read + env: GO_VERSION: "1.26.1" NODE_VERSION: "24" @@ -243,7 +246,6 @@ jobs: with: tag_name: ${{ needs.prepare.outputs.tag }} name: ${{ needs.prepare.outputs.tag }} - generate_release_notes: true prerelease: ${{ needs.prepare.outputs.is_prerelease == 'true' }} files: artifacts/* diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 000000000..eb65bfe9e --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "0.26.2" +} diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 000000000..2d8f383b3 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,35 @@ +{ + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", + "include-v-in-tag": true, + "include-component-in-tag": false, + "bump-minor-pre-major": true, + "packages": { + ".": { + "release-type": "go", + "package-name": "memos", + "changelog-path": "CHANGELOG.md", + "changelog-sections": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "perf", + "section": "Performance Improvements" + }, + { + "type": "deps", + "section": "Dependencies" + }, + { + "type": "revert", + "section": "Reverts" + } + ] + } + } +}