From 7c35c4ef25912ce82c294ae0b44891a9bf073d4f Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Mon, 31 Jul 2023 15:16:13 +0100 Subject: [PATCH] add an auto-deploy action for stable releases --- .github/workflows/publish-stable.yml | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/publish-stable.yml diff --git a/.github/workflows/publish-stable.yml b/.github/workflows/publish-stable.yml new file mode 100644 index 0000000000..1c2db4aca5 --- /dev/null +++ b/.github/workflows/publish-stable.yml @@ -0,0 +1,50 @@ +# For every push to the master branch, this checks if the release-plan was +# updated and if it was it will publish stable npm packages based on the +# release plan + +name: Publish Stable + +on: + workflow_dispatch: + push: + branches: + - main + +env: + VOLTA_FEATURE_PNPM: 1 + +concurrency: + group: publish-stable-${{ github.head_ref || github.ref }} + cancel-in-progress: true + +jobs: + check-plan: + name: "Check Release Plan" + runs-on: ubuntu-latest + + steps: + # This will only cause the `check-plan` job to have a result of `success` + # when the .release-plan.json file was changed on the last commit. This + # plus the fact that this action only runs on main will be enough of a guard + - run: git diff --name-only HEAD HEAD~1 | grep -w -q ".release-plan.json" + + publish: + name: "NPM Publish" + runs-on: ubuntu-latest + needs: check-plan + if: needs.check-plan.result == 'success' + + steps: + - uses: actions/checkout@v3 + - uses: ./.github/actions/setup + - name: Install Node + uses: actions/setup-node@v3 + with: + # This creates an .npmrc that reads the NODE_AUTH_TOKEN environment variable + registry-url: 'https://registry.npmjs.org' + + - name: npm publish + run: pnpm embroider-release publish + env: + GITHUB_AUTH: ${{ secrets.GITHUB_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}