Skip to content

Commit 376d4a0

Browse files
committed
build: refactor create-release action
1 parent 41e8e5d commit 376d4a0

File tree

2 files changed

+80
-44
lines changed

2 files changed

+80
-44
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: 'Create release'
2+
description: 'Create a new release'
3+
inputs:
4+
github_token:
5+
description: 'The GitHub token'
6+
required: true
7+
production_release:
8+
description: 'Is production release?'
9+
required: true
10+
node_version:
11+
description: 'The Node version'
12+
required: true
13+
default: 20
14+
outputs:
15+
release_published:
16+
description: "If the release was published"
17+
release_version:
18+
description: "The new release version"
19+
release_id:
20+
description: "The new release ID"
21+
22+
runs:
23+
using: 'composite'
24+
- name: setup node
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: ${{ inputs.node_version }}
28+
29+
- name: install app dependencies
30+
run: npm install
31+
32+
- run: npx semantic-release --dry-run
33+
id: get-next-version
34+
env:
35+
GITHUB_TOKEN: ${{ inputs.github_token }}
36+
37+
- name: create release - beta
38+
if: ${{ github.ref_name == 'main' && inputs.production_release != 'true' }}
39+
env:
40+
GITHUB_TOKEN: ${{ inputs.github_token }}
41+
run: 'npx semantic-release'
42+
shell: bash
43+
44+
- name: create release - beta
45+
if: ${{ github.ref_name == 'main' && inputs.production_release == 'true' }}
46+
env:
47+
GITHUB_TOKEN: ${{ inputs.github_token }}
48+
run: 'npx semantic-release --branches main'
49+
shell: bash
50+
51+
- name: get release ID
52+
id: get-release-id
53+
uses: actions/github-script@v7
54+
if: steps.get-next-version.outputs.new-release-published == 'true'
55+
with:
56+
script: |
57+
const { data } = await github.rest.repos.getReleaseByTag({
58+
owner: context.repo.owner,
59+
repo: context.repo.repo,
60+
tag: "v${{ steps.get-next-version.outputs.new-release-version }}"
61+
})
62+
return data.id
63+
64+
- name: set outputs
65+
id: set-outputs
66+
run: |
67+
echo "{release_published}=${{ steps.get-next-version.outputs.new-release-published }}" >> $GITHUB_OUTPUT
68+
echo "{release_version}=${{ steps.get-next-version.outputs.new-release-version }}" >> $GITHUB_OUTPUT
69+
echo "{release_id}=${{ steps.get-release-id.outputs.result }}" >> $GITHUB_OUTPUT
70+
shell: bash
71+

.github/workflows/release.yaml

Lines changed: 9 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -57,52 +57,17 @@ jobs:
5757
with:
5858
fetch-depth: 0
5959

60-
- name: setup node
61-
uses: actions/setup-node@v4
62-
with:
63-
node-version: 20
64-
65-
- name: Get branch name
66-
shell: bash
67-
run: echo "branch=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
68-
id: get_branch
69-
70-
- name: install app dependencies
71-
run: npm install
72-
73-
- run: npx semantic-release --dry-run
74-
id: get-next-version
75-
env:
76-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
77-
78-
- name: create release - beta
79-
if: ${{ github.ref_name == 'main' && inputs.production_release != 'true' }}
80-
env:
81-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
82-
run: 'npx semantic-release'
83-
84-
- name: create release - beta
85-
if: ${{ github.ref_name == 'main' && inputs.production_release == 'true' }}
86-
env:
87-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
88-
run: 'npx semantic-release --branches main'
89-
90-
- name: get release ID
91-
id: get-release-id
92-
uses: actions/github-script@v7
93-
if: steps.get-next-version.outputs.new-release-published == 'true'
60+
- name: create release
61+
id: create-release-action
62+
uses: ./.github/actions/create-release
9463
with:
95-
script: |
96-
const { data } = await github.rest.repos.getReleaseByTag({
97-
owner: context.repo.owner,
98-
repo: context.repo.repo,
99-
tag: "v${{ steps.get-next-version.outputs.new-release-version }}"
100-
})
101-
return data.id
64+
github_token: ${{ secrets.GITHUB_TOKEN }}
65+
production_release: ${{ inputs.production_release }}
66+
node_version: 20
10267
outputs:
103-
release_published: ${{ steps.get-next-version.outputs.new-release-published }}
104-
release_version: ${{ steps.get-next-version.outputs.new-release-version }}
105-
release_id: ${{ steps.get-release-id.outputs.result }}
68+
release_published: ${{ steps.create-release-action.outputs.new-release-published }}
69+
release_version: ${{ steps.create-release-action.outputs.new-release-version }}
70+
release_id: ${{ steps.create-release-action.outputs.result }}
10671

10772
package-tauri:
10873
needs:

0 commit comments

Comments
 (0)