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 d77564d..0954b0d 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@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + draft: + uses: edalzell/github-workflows/.github/workflows/release-draft.yml@9f72f0b77303abff9903b16da75346b1eb1c3785 # v1.4.0 + permissions: + contents: write + pull-requests: write diff --git a/.github/workflows/label-pr.yml b/.github/workflows/label-pr.yml index 9ae6eeb..667072b 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@v4 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + label: + uses: edalzell/github-workflows/.github/workflows/label-pr.yml@9f72f0b77303abff9903b16da75346b1eb1c3785 # v1.4.0 + 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..ca25fac --- /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.RELEASE_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@9f72f0b77303abff9903b16da75346b1eb1c3785 # v1.4.0 + 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..cca7c20 --- /dev/null +++ b/.github/workflows/release-publish.yml @@ -0,0 +1,13 @@ +name: Release Publish + +on: + pull_request: + types: [closed] + +jobs: + publish: + uses: edalzell/github-workflows/.github/workflows/release-publish.yml@9f72f0b77303abff9903b16da75346b1eb1c3785 # v1.4.0 + permissions: + contents: write + with: + upload_assets: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index bfdd5d6..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,67 +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@v1 - id: latest_draft_release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - draft: true - latest: true - - upload_assets: - needs: get_draft_release - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - 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 - 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@v3 - - name: Update Changelog - id: update_changelog - uses: stefanzweifel/changelog-updater-action@v1 - 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@v4 - with: - branch: main - commit_message: Update CHANGELOG - file_pattern: CHANGELOG.md - - uses: eregon/publish-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - release_id: ${{ needs.get_draft_release.outputs.release_id }}