name: Create GitHub Release description: Automatically creates a release when a PR is merged that both that changes package.json and has the Release label. on: pull_request: types: [closed] branches: - main - master paths: - "package.json" jobs: create-release: runs-on: ubuntu-latest if: > github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'Release') steps: - name: Checkout code uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: lts/* - name: Get current version id: current_version run: | CURRENT_VERSION=$(node -p "require('./package.json').version") echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT - name: Create release id: create_release uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: v${{ steps.current_version.outputs.version }} draft: false prerelease: false generate_release_notes: true make_latest: "true" publish: runs-on: ubuntu-latest if: > github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'Release') steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v3 with: node-version: lts/* registry-url: "https://registry.npmjs.org" - run: npm ci - run: npm run build - run: npm publish --access public env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}