From d45598db6bd5437151cf0b4b444ac6372bee5b73 Mon Sep 17 00:00:00 2001 From: Timo Glastra Date: Thu, 30 Jan 2025 18:29:49 +0800 Subject: [PATCH] ci: fix release with merge commit (#51) Signed-off-by: Timo Glastra --- .changeset/commit.js | 21 +++++++++++++++++++++ .changeset/config.json | 1 + .github/workflows/release.yml | 9 ++++++--- 3 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 .changeset/commit.js diff --git a/.changeset/commit.js b/.changeset/commit.js new file mode 100644 index 0000000..fab6182 --- /dev/null +++ b/.changeset/commit.js @@ -0,0 +1,21 @@ +const { execSync } = require('node:child_process') + +const getSignedOffBy = () => { + const gitUserName = execSync('git config user.name').toString('utf-8').trim() + const gitEmail = execSync('git config user.email').toString('utf-8').trim() + + return `Signed-off-by: ${gitUserName} <${gitEmail}>` +} + +const getAddMessage = async (changeset) => { + return `docs(changeset): ${changeset.summary}\n\n${getSignedOffBy()}\n` +} + +const getVersionMessage = async () => { + return `chore(release): new version\n\n${getSignedOffBy()}\n` +} + +module.exports = { + getAddMessage, + getVersionMessage, +} diff --git a/.changeset/config.json b/.changeset/config.json index 963f0f3..bd4d9c5 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,6 +1,7 @@ { "$schema": "https://unpkg.com/@changesets/config@3.0.1/schema.json", "changelog": "@changesets/cli/changelog", + "commit": "./commit", "privatePackages": false, "fixed": [["@animo-id/*"]], "access": "public", diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0bedf7d..cb18376 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,6 +11,8 @@ jobs: release-stable: runs-on: ubuntu-20.04 name: Release Stable + outputs: + published: ${{ steps.changesets.outputs.published }} steps: - name: Checkout Repo uses: actions/checkout@v4 @@ -25,7 +27,7 @@ jobs: - name: Install Dependencies run: pnpm install --frozen-lockfile - - name: Create Release Pull Request + - name: Create Release Pull Request or Publish to npm id: changesets uses: changesets/action@v1 with: @@ -42,7 +44,7 @@ jobs: run: echo "CURRENT_PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV - name: Create Github Release - if: "startsWith(github.event.head_commit.message, 'chore(release): new version')" + if: steps.changesets.outputs.published == 'true' uses: softprops/action-gh-release@v2 with: tag_name: v${{ env.CURRENT_PACKAGE_VERSION }} @@ -50,7 +52,8 @@ jobs: release-unstable: runs-on: ubuntu-20.04 name: Release Unstable - if: "always() && github.event_name == 'push' && !startsWith(github.event.head_commit.message, 'chore(release): new version')" + needs: release-stable + if: always() && github.event_name == 'push' && needs.release-stable.outputs.published == 'false' steps: - name: Checkout Repo uses: actions/checkout@v4