-
Notifications
You must be signed in to change notification settings - Fork 32
87 lines (77 loc) · 2.55 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
name: "🚀 Release"
on:
workflow_dispatch:
inputs:
next_version:
type: choice
description: "How to bump the version?"
options:
- "major"
- "minor"
- "patch"
default: "patch"
concurrency: "release"
jobs:
version:
runs-on: ubuntu-latest
steps:
- name: "📥 Checkout code"
uses: actions/checkout@v4
- name: "🔍 Read package.json version"
id: version
run: |
VERSION=$(jq -r .version < package.json)
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "::notice file={package.json},title={Release Version}::Release version: ${VERSION}"
outputs:
package_version: ${{ steps.version.outputs.version }}
deploy:
uses: ./.github/workflows/deploy.yml
release-version:
runs-on: ubuntu-latest
needs: [ version, deploy ]
steps:
- name: "🚀 Publish release"
uses: actions/github-script@v7
with:
script: |
const { owner, repo } = context.repo;
const tag_name = 'v${{needs.version.outputs.package_version}}';
const {data: release} = await github.rest.repos.generateReleaseNotes({
owner,
repo,
tag_name
});
await github.rest.repos.createRelease({
owner,
repo,
tag_name,
name: release.name,
body: release.body
});
next-version:
runs-on: ubuntu-latest
needs: [ release-version ]
steps:
- name: "📥 Checkout code"
uses: actions/checkout@v4
- name: "🔍 Bump package.json version"
run: |
yarn version --no-git-tag-version --${{ github.event.inputs.next_version }}
- name: "🔍 Read package.json version"
id: version
run: |
VERSION=$(jq -r .version < package.json)
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "::notice file={package.json},title={Next Version}::Next version: ${VERSION}"
- name: "🔄 Create Pull Request"
uses: peter-evans/create-pull-request@v6
with:
commit-message: "chore: bump version to v${{steps.version.outputs.version}}"
title: "chore: bump version to v${{steps.version.outputs.version}}"
body: "Bumps the version to v${{steps.version.outputs.version}}"
branch: "chore/bump-v${{steps.version.outputs.version}}"
labels: "release"
reviewers: "codemile"
assignees: "codemile"
draft: false