name: Publish on: push: branches: - main - develop # manual trigger for other branches workflow_dispatch: permissions: id-token: write contents: write pull-requests: write concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: release: name: Release runs-on: ubuntu-latest strategy: matrix: node-version: [20] steps: - name: Checkout Repo uses: actions/checkout@v4 - name: Setup Node ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} registry-url: 'https://registry.npmjs.org/' - name: Load cached dependencies uses: actions/cache@v4.1.2 id: cache with: path: | **/node_modules **/.turbo /home/runner/.cache/Cypress key: ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }} - name: Install Dependencies run: npm ci - name: Create Release PR or publish stable version to npm id: changesets uses: changesets/action@v1 with: createGithubReleases: false publish: npm run publish version: npm run version title: ${{ github.ref_name == 'main' && 'Publish a new stable version' || 'Publish a new pre-release version' }} commit: >- ${{ github.ref_name == 'main' && 'chore(release): publish a new release version' || 'chore(release): publish a new pre-release version' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - name: Send release notification if: steps.changesets.outputs.published == 'true' id: slack uses: slackapi/slack-github-action@v1.27.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.27.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 }}