From c9972cac576daf3cdeec11b7f5bb95a0d4e879d3 Mon Sep 17 00:00:00 2001 From: Jorben Date: Wed, 11 Feb 2026 12:00:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?ci(changelog):=20=F0=9F=91=B7=20restrict=20?= =?UTF-8?q?changelog=20to=20stable=20version=20tags=20only?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Filter tag trigger to match only X.Y.Z format (no pre-release suffixes) - Find previous stable tag for accurate changelog diff range - Use fromTag/toTag to compare between stable releases only - Fetch full git history to enable tag lookup Co-Authored-By: Claude Opus 4.6 --- .github/workflows/changelog.yml | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 308805c..8645015 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -3,7 +3,7 @@ name: Update changelog on: push: tags: - - "*" + - "[0-9]+.[0-9]+.[0-9]+" workflow_dispatch: inputs: release_version: @@ -18,13 +18,26 @@ jobs: steps: - name: Checkout Code uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Find previous stable tag + id: prev_tag + run: | + CURRENT_TAG="${{ github.ref_name }}" + # List all tags matching X.Y.Z (no suffix), sorted by version descending + # Exclude the current tag, then take the first match as the previous stable tag + PREV_TAG=$(git tag -l --sort=-v:refname | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | grep -v "^${CURRENT_TAG}$" | head -n 1) + echo "prev_tag=${PREV_TAG}" >> "$GITHUB_OUTPUT" + echo "Current tag: ${CURRENT_TAG}, Previous stable tag: ${PREV_TAG}" - name: Update CHANGELOG id: changelog uses: requarks/changelog-action@v1 with: token: ${{ github.token }} - tag: ${{ github.ref_name }} + fromTag: ${{ github.ref_name }} + toTag: ${{ steps.prev_tag.outputs.prev_tag }} - name: Create Pull Request uses: peter-evans/create-pull-request@v7 @@ -34,6 +47,7 @@ jobs: title: "docs: update CHANGELOG.md for ${{ github.ref_name }}" body: | Auto-generated changelog update for release ${{ github.ref_name }}. + Comparing changes from `${{ steps.prev_tag.outputs.prev_tag }}` to `${{ github.ref_name }}`. This PR was automatically created by the changelog workflow. branch: changelog/${{ github.ref_name }} From c5156e3f897ca7474342fbc99acfd3c89330b885 Mon Sep 17 00:00:00 2001 From: Jorben Date: Wed, 11 Feb 2026 14:26:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?ci(mac):=20=F0=9F=91=B7=20switch=20notariza?= =?UTF-8?q?tion=20to=20async=20submit=20to=20prevent=20CI=20timeout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Disable electron-builder's synchronous notarization which blocks the build pipeline when Apple's service is slow. Instead, submit dmg files asynchronously via xcrun notarytool without --wait after the build step. The notarize step uses continue-on-error to avoid blocking artifact uploads. macOS will verify notarization status online when users open the app. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/release.yml | 14 ++++++++++++++ package.json | 4 +--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 327d054..71ec54c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,6 +49,20 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} CSC_LINK: ${{ secrets.APPLE_CERTIFICATE }} CSC_KEY_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + + - name: Submit notarization (async) + if: matrix.platform == 'mac' + continue-on-error: true + run: | + for dmg in release/*.dmg; do + echo "Submitting $dmg for notarization..." + xcrun notarytool submit "$dmg" \ + --apple-id "$APPLE_ID" \ + --password "$APPLE_APP_SPECIFIC_PASSWORD" \ + --team-id "$APPLE_TEAM_ID" + done + env: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} diff --git a/package.json b/package.json index 703e58f..d50d1bc 100644 --- a/package.json +++ b/package.json @@ -87,9 +87,7 @@ "entitlements": "build/entitlements.mac.plist", "entitlementsInherit": "build/entitlements.mac.plist", "forceCodeSigning": false, - "notarize": { - "teamId": "${env.APPLE_TEAM_ID}" - } + "notarize": false }, "win": { "target": "nsis",