2024-06-27 23:48:30 +08:00
name : Publish
on :
push :
branches :
- main
2024-07-04 00:36:41 +08:00
- develop
2024-06-28 00:15:54 +08:00
# manual trigger for other branches
workflow_dispatch :
2024-07-04 00:02:34 +08:00
permissions :
id-token : write
2024-07-04 00:18:23 +08:00
contents : write
2024-07-04 00:35:46 +08:00
pull-requests : write
2024-06-27 23:48:30 +08:00
2024-06-28 00:12:56 +08:00
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress : true
2024-06-27 23:48:30 +08:00
jobs :
release :
name : Release
runs-on : ubuntu-latest
2024-07-04 02:16:06 +08:00
strategy :
matrix :
node-version : [ 20 ]
2024-06-27 23:48:30 +08:00
steps :
- name : Checkout Repo
2024-07-03 23:42:50 +08:00
uses : actions/checkout@v4
2024-06-27 23:48:30 +08:00
2024-07-04 02:16:06 +08:00
- name : Setup Node ${{ matrix.node-version }}
2024-07-03 23:42:50 +08:00
uses : actions/setup-node@v4
2024-06-27 23:48:30 +08:00
with :
2024-07-04 02:16:06 +08:00
node-version : ${{ matrix.node-version }}
2024-07-03 23:42:50 +08:00
registry-url : 'https://registry.npmjs.org/'
2024-06-27 23:48:30 +08:00
2024-07-04 02:16:06 +08:00
- name : Load cached dependencies
2024-10-29 00:34:13 +08:00
uses : actions/cache@v4.1.2
2024-07-04 02:16:06 +08:00
id : cache
with :
path : |
**/node_modules
**/.turbo
/home/runner/.cache/Cypress
key : ${{ runner.os }}-node-${{ matrix.node-version }}-${{ hashFiles('**/package-lock.json') }}
2024-06-27 23:48:30 +08:00
- name : Install Dependencies
run : npm ci
- name : Create Release PR or publish stable version to npm
id : changesets
uses : changesets/action@v1
with :
2024-07-19 20:35:09 +08:00
createGithubReleases : false
2024-07-04 04:53:35 +08:00
publish : npm run publish
2024-09-26 20:51:00 +08:00
version : npm run version
2024-07-04 02:39:20 +08:00
title : ${{ github.ref_name == 'main' && 'Publish a new stable version' || 'Publish a new pre-release version' }}
2024-07-04 02:44:36 +08:00
commit : >-
${{ github.ref_name == 'main' && 'chore(release): publish a new release version' || 'chore(release): publish a new pre-release version' }}
2024-06-27 23:48:30 +08:00
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
2024-07-03 23:42:50 +08:00
NODE_AUTH_TOKEN : ${{secrets.NPM_TOKEN}}
2024-06-27 23:48:30 +08:00
- name : Send release notification
2024-07-04 02:39:20 +08:00
if : steps.changesets.outputs.published == 'true'
2024-06-27 23:48:30 +08:00
id : slack
2024-09-17 21:53:16 +08:00
uses : slackapi/slack-github-action@v1.27.0
2024-06-27 23:48:30 +08:00
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
2024-09-17 21:53:16 +08:00
uses : slackapi/slack-github-action@v1.27.0
2024-06-27 23:48:30 +08:00
with :
payload : |
{
2024-06-28 00:08:34 +08:00
"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 }}"
2024-06-27 23:48:30 +08:00
}
env :
SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}