diff --git a/.github/workflows/misc_changesets.yml b/.github/workflows/misc_changesets.yml new file mode 100644 index 00000000..b6d979ee --- /dev/null +++ b/.github/workflows/misc_changesets.yml @@ -0,0 +1,56 @@ +name: 🔄 Changesets +on: + workflow_call: + outputs: + publish: + description: "Should publish" + value: ${{ jobs.changesets.outputs.publish || 'false' }} + +permissions: + contents: write + pull-requests: write + +jobs: + changesets: + name: 🔄 Changesets + runs-on: ubuntu-latest + outputs: + publish: ${{ steps.should_publish.outputs.publish }} + steps: + - name: ⏬ Checkout repository + uses: actions/checkout@v4 + + - name: 🛫 Setup pnpm + uses: pnpm/action-setup@v4 + + - name: 🦕❌ Setup node.js + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: "pnpm" + + - name: 🛠️ Install dependencies + run: | + pnpm install + + - name: 🆚 Create and publish versions + id: changesets + uses: changesets/action@v1 + with: + commit: "chore: update versions" + title: "chore: update versions" + version: pnpm ci:version + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: ❓ Should publish + id: should_publish + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HAS_CHANGESETS: ${{ steps.changesets.outputs.hasChangesets }} + run: | + if [[ $SHOULD_PUBLISH == "true" && $HAS_CHANGESETS == "false" ]]; then + echo "publish=true" >> $GITHUB_OUTPUT + else + echo "publish=false" >> $GITHUB_OUTPUT + fi diff --git a/.github/workflows/misc_environment.yml b/.github/workflows/misc_environment.yml index d85ee9bf..cf6c49c1 100644 --- a/.github/workflows/misc_environment.yml +++ b/.github/workflows/misc_environment.yml @@ -8,13 +8,6 @@ on: v8: description: "V8 version" value: ${{ jobs.environment.outputs.v8 }} - publish: - description: "Should publish" - value: ${{ jobs.environment.outputs.publish }} - -permissions: - contents: write - pull-requests: write jobs: environment: @@ -23,7 +16,6 @@ jobs: outputs: version: ${{ steps.versions.outputs.version }} v8: ${{ steps.versions.outputs.v8 }} - publish: ${{ steps.should_publish.outputs.publish }} steps: - name: ⏬ Checkout repository uses: actions/checkout@v4 @@ -41,29 +33,6 @@ jobs: run: | pnpm install - - name: 🆚 Create and publish versions - id: changesets - uses: changesets/action@v1 - with: - commit: "chore: update versions" - title: "chore: update versions" - version: pnpm ci:version - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: ❓ Should publish - id: should_publish - env: - HAS_CHANGESETS: ${{ steps.changesets.outputs.hasChangesets }} - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - SHOULD_PUBLISH=$(pnpm run ci:should-publish) - if [[ $SHOULD_PUBLISH == "true" && $HAS_CHANGESETS == "false" ]]; then - echo "publish=true" >> $GITHUB_OUTPUT - else - echo "publish=false" >> $GITHUB_OUTPUT - fi - - name: 🛠️ Build bundled JavaScript run: | pnpm build diff --git a/.github/workflows/runner.yml b/.github/workflows/runner.yml index 5f7cbb2b..a0913d4b 100644 --- a/.github/workflows/runner.yml +++ b/.github/workflows/runner.yml @@ -22,6 +22,14 @@ jobs: name: 🌳 Set Environment uses: ./.github/workflows/misc_environment.yml + changesets: + if: github.event_name != 'pull_request' + permissions: + contents: write + pull-requests: write + name: 🔄 Changesets + uses: ./.github/workflows/misc_changesets.yml + android-build: name: 🤖 Android uses: ./.github/workflows/build_android.yml @@ -104,8 +112,8 @@ jobs: release: name: 🦅 Release - if: needs.environment.outputs.publish == 'true' && github.event_name != 'pull_request' - needs: [checks-done, environment] + if: needs.changesets.outputs.publish == 'true' + needs: [changesets, checks-done, environment] uses: ./.github/workflows/misc_release.yml secrets: inherit with: