name: Publish on: push: branches: - main # manual trigger for other branches workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: release: name: Release runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Setup Node 20 uses: actions/setup-node@v4 with: node-version: '20.x' registry-url: 'https://registry.npmjs.org/' - name: Install Dependencies run: npm ci - name: Create Release PR or publish stable version to npm if: github.ref_name == 'main' id: changesets uses: changesets/action@v1 with: publish: npm run publish env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - name: Create Release PR or publish pre version to npm if: github.ref_name != 'main' id: changesets_pre uses: changesets/action@v1 with: publish: npm run publish:pre env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - name: Send release notification if: steps.changesets.outputs.published == 'true' || steps.changesets_pre.outputs.published == 'true' id: slack uses: slackapi/slack-github-action@v1.26.0 with: payload: | { "message": "[Tiptap Editor Release]: New Tiptap Editor version has been released to NPM." } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} - name: Send failure notification if: failure() id: slack_failure uses: slackapi/slack-github-action@v1.26.0 with: payload: | { "message": "[Tiptap Editor Release]: There was an issue publishing a new version. You can find the logs here: https://github.com/ueberdosis/tiptap/actions/runs/${{ github.run_id }}" } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}