mirror of
https://github.com/codex-team/editor.js
synced 2024-06-26 17:30:48 +02:00
128 lines
4.2 KiB
YAML
128 lines
4.2 KiB
YAML
name: Create a release draft
|
|
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- next
|
|
types: [closed]
|
|
|
|
jobs:
|
|
# If pull request was merged then we should check for a package version update
|
|
check-version-changing:
|
|
if: github.event.pull_request.merged == true
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
actions: write
|
|
steps:
|
|
- uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 16
|
|
# Checkout to target branch
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
# Get package new version name
|
|
- name: Get package info
|
|
id: packageNew
|
|
uses: codex-team/action-nodejs-package-info@v1
|
|
|
|
# Checkout to the base commit before merge
|
|
- name: Checkout to the base commit before merge
|
|
run: git checkout ${{ github.event.pull_request.base.sha }}
|
|
|
|
# Get package old version name
|
|
- name: Get package info
|
|
id: packageOld
|
|
uses: codex-team/action-nodejs-package-info@v1
|
|
|
|
# Stop workflow if version was not changed
|
|
- name: Stop workflow if version was not changed
|
|
if: steps.packageOld.outputs.version == steps.packageNew.outputs.version
|
|
run: |
|
|
curl -L \
|
|
-X POST \
|
|
-H "Accept: application/vnd.github+json" \
|
|
-H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
|
|
-H "X-GitHub-Api-Version: 2022-11-28" \
|
|
https://api.github.com/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/cancel
|
|
|
|
# Create a new draft release
|
|
release-draft:
|
|
needs: check-version-changing
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
# Checkout to target branch
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
# Pull submodules
|
|
submodules: 'recursive'
|
|
|
|
# Setup node environment
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 16
|
|
|
|
# Prepare, build and publish project
|
|
- name: Install dependencies
|
|
run: yarn
|
|
|
|
# Build Editor.js
|
|
- name: Build output files
|
|
run: yarn build
|
|
|
|
# Get package version name
|
|
- name: Get package info
|
|
id: package
|
|
uses: codex-team/action-nodejs-package-info@v1
|
|
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: v${{ steps.package.outputs.version }}
|
|
release_name: v${{ steps.package.outputs.version }}
|
|
|
|
# Fill release description from pull request body name
|
|
body: "${{ github.event.pull_request.title }} #${{ github.event.pull_request.number }}"
|
|
|
|
# Save as a draft release
|
|
draft: true
|
|
|
|
# If version name contains "-rc" suffix than mark a "pre-release" checkbox
|
|
prerelease: ${{ contains(steps.package.outputs.version, '-rc') }}
|
|
|
|
# Build and upload target Editor.js UMD build to release as artifact
|
|
- name: Upload Release Asset
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: dist/editorjs.umd.js
|
|
asset_name: editorjs.umd.js
|
|
asset_content_type: application/javascript
|
|
|
|
# Build and upload target Editor.js MJS build to release as artifact
|
|
- name: Upload Release Asset
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: dist/editorjs.mjs
|
|
asset_name: editorjs.mjs
|
|
asset_content_type: application/javascript
|
|
|
|
# Send a notification message
|
|
- name: Send a message
|
|
uses: codex-team/action-codexbot-notify@v1
|
|
with:
|
|
webhook: ${{ secrets.CODEX_BOT_WEBHOOK_FRONTEND }}
|
|
message: '🦥 [Draft release v${{ steps.package.outputs.version }}](${{ steps.create_release.outputs.html_url }}) for package [${{ steps.package.outputs.name }}](${{ steps.package.outputs.npmjs-link }}) has been created. Add changelog and publish it!'
|
|
parse_mode: 'markdown'
|
|
disable_web_page_preview: true |