From 854bbfb899d7b1158f5864f60488816dbb44d995 Mon Sep 17 00:00:00 2001 From: edalzell Date: Sun, 6 Sep 2026 13:52:04 -0700 Subject: [PATCH] chore: release via PR instead of pushing main Org branch rules reject the changelog commit from GITHUB_TOKEN, so switch to Prime's prepare/publish flow. --- .github/dependabot.yml | 12 ++++ .github/pr-labeler.yml | 4 -- .github/release-drafter.yml | 42 ------------- .github/workflows/create-draft-release.yml | 15 ++--- .github/workflows/label-pr.yml | 14 ++--- .github/workflows/release-prepare.yml | 28 +++++++++ .github/workflows/release-publish.yml | 11 ++++ .github/workflows/release.yml | 68 ---------------------- 8 files changed, 63 insertions(+), 131 deletions(-) create mode 100644 .github/dependabot.yml delete mode 100644 .github/pr-labeler.yml delete mode 100644 .github/release-drafter.yml create mode 100644 .github/workflows/release-prepare.yml create mode 100644 .github/workflows/release-publish.yml delete mode 100644 .github/workflows/release.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ebe594b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + groups: + github-actions: + patterns: + - "*" + labels: + - "chore" diff --git a/.github/pr-labeler.yml b/.github/pr-labeler.yml deleted file mode 100644 index c3de460..0000000 --- a/.github/pr-labeler.yml +++ /dev/null @@ -1,4 +0,0 @@ -chore: 'chore/*' -feature: ['feature/*', 'feat/*'] -fix: 'fix/*' -improvement: ['improvement/*', 'improve/*'] diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 868f093..0000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,42 +0,0 @@ -name-template: 'v$RESOLVED_VERSION' -tag-template: 'v$RESOLVED_VERSION' -categories: - - title: '🚀 New' - labels: - - 'feature' - - 'enhancement' - - title: '🐛 Fixed' - labels: - - 'fix' - - 'bugfix' - - 'bug' - - title: '🔧 Improved' - labels: - - 'change' - - 'improve' - - 'improvement' - - 'sync' - - title: '🧰 Maintenance' - label: 'chore' -change-template: '- $TITLE [@$AUTHOR](https://github.com/$AUTHOR) (#$NUMBER)' -change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. -version-resolver: - major: - labels: - - 'major' - minor: - labels: - - 'feature' - - 'enhancement' - - 'change' - - 'improve' - - 'improvement' - patch: - labels: - - 'fix' - - 'bugfix' - - 'bug' - - 'sync' - default: patch -template: | - $CHANGES diff --git a/.github/workflows/create-draft-release.yml b/.github/workflows/create-draft-release.yml index 0d2362c..d977b09 100644 --- a/.github/workflows/create-draft-release.yml +++ b/.github/workflows/create-draft-release.yml @@ -3,15 +3,10 @@ name: Release Drafter on: pull_request: types: [closed] -permissions: - contents: read jobs: - update_release_draft: - if: github.event.pull_request.merged == true - permissions: write-all - runs-on: ubuntu-latest - steps: - - uses: release-drafter/release-drafter@v7.3.1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + draft: + uses: edalzell/github-workflows/.github/workflows/release-draft.yml@5ebfc6714a6c4ca7f2434ff01736ea2405e1c323 # v1.3.1 + permissions: + contents: write + pull-requests: write diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index 26417e0..13ed9cc 100644 --- a/.github/workflows/label-pr.yml +++ b/.github/workflows/label-pr.yml @@ -1,12 +1,12 @@ name: PR Labeler + on: pull_request: - types: [opened] + types: [opened, reopened, synchronize] jobs: - pr-labeler: - runs-on: ubuntu-latest - steps: - - uses: TimonVS/pr-labeler-action@v5.0.0 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + label: + uses: edalzell/github-workflows/.github/workflows/label-pr.yml@5ebfc6714a6c4ca7f2434ff01736ea2405e1c323 # v1.3.1 + permissions: + contents: read + pull-requests: write diff --git a/.github/workflows/release-prepare.yml b/.github/workflows/release-prepare.yml new file mode 100644 index 0000000..85b5bec --- /dev/null +++ b/.github/workflows/release-prepare.yml @@ -0,0 +1,28 @@ +name: Release Prepare + +on: + workflow_dispatch: + +jobs: + authorize: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Require transformstudios/maintainers + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + state=$(gh api "orgs/transformstudios/teams/maintainers/memberships/${GITHUB_ACTOR}" --jq .state 2>/dev/null || true) + if [ "$state" != "active" ]; then + echo "::error::Only @transformstudios/maintainers can run Release Prepare (actor: ${GITHUB_ACTOR})" + exit 1 + fi + + prepare: + needs: authorize + uses: edalzell/github-workflows/.github/workflows/release-prepare.yml@5ebfc6714a6c4ca7f2434ff01736ea2405e1c323 # v1.3.1 + permissions: + contents: write + secrets: + release_token: ${{ secrets.RELEASE_TOKEN }} diff --git a/.github/workflows/release-publish.yml b/.github/workflows/release-publish.yml new file mode 100644 index 0000000..ac9289f --- /dev/null +++ b/.github/workflows/release-publish.yml @@ -0,0 +1,11 @@ +name: Release Publish + +on: + pull_request: + types: [closed] + +jobs: + publish: + uses: edalzell/github-workflows/.github/workflows/release-publish.yml@5ebfc6714a6c4ca7f2434ff01736ea2405e1c323 # v1.3.1 + permissions: + contents: write diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 36d8b9a..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,68 +0,0 @@ -name: Release - -on: - workflow_dispatch: -jobs: - get_draft_release: - runs-on: ubuntu-latest - outputs: - release_body: ${{ steps.latest_draft_release.outputs.body }} - release_id: ${{ steps.latest_draft_release.outputs.id }} - release_tag: ${{ steps.latest_draft_release.outputs.tag_name }} - release_upload_url: ${{ steps.latest_draft_release.outputs.upload_url }} - steps: - - name: Get Draft Release - uses: cardinalby/git-get-release-action@1.2.5 - id: latest_draft_release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - draft: true - latest: true - - upload_assets: - if: ${{ inputs.upload_assets }} - needs: get_draft_release - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v6.0.2 - - name: Install dependencies - run: npm install - - name: Compile assets - run: npm run production - - name: Create zip - run: tar -czvf dist.tar.gz dist - - name: Upload zip to release - uses: actions/upload-release-asset@v1.0.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ needs.get_draft_release.outputs.release_upload_url }} - asset_path: ./dist.tar.gz - asset_name: dist.tar.gz - asset_content_type: application/tar+gz - - release: - runs-on: ubuntu-latest - needs: get_draft_release - steps: - - name: Checkout code - uses: actions/checkout@v6.0.2 - - name: Update Changelog - id: update_changelog - uses: stefanzweifel/changelog-updater-action@v1.12.0 - with: - latest-version: ${{ needs.get_draft_release.outputs.release_tag }} - release-notes: ${{ needs.get_draft_release.outputs.release_body }} - - name: Commit updated CHANGELOG - uses: stefanzweifel/git-auto-commit-action@v7.1.0 - with: - branch: main - commit_message: Update CHANGELOG - file_pattern: CHANGELOG.md - - uses: eregon/publish-release@v1.0.6 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - release_id: ${{ needs.get_draft_release.outputs.release_id }}