-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (123 loc) · 4 KB
/
semantic-release.yaml
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
---
name: Semantic Release
on:
push:
branches:
- release
- beta
paths:
- 'package/**'
permissions:
id-token: write # required to use OIDC authentication
contents: write # required to checkout the code from the repo and to perform release
packages: write # required to publish to packages
pull-requests: write
jobs:
check:
name: GitHub Prerequisites Check
runs-on: ubuntu-latest
outputs:
has_npm_secrets: ${{ steps.check-npm-key-secret.outputs.declared }}
steps:
- name: Check for NPM Secret availability
id: check-npm-key-secret
shell: bash
run: |
if [[ ! -z "${{ secrets.NPM_TOKEN }}" ]]; then
echo "All secrets are declared."
echo "declared=true" >> $GITHUB_OUTPUT;
else
echo "NPM_TOKEN secret is missing."
exit 1
fi
check_version_number:
name: Check version
needs: [check]
runs-on: ubuntu-latest
if: |
needs.check.outputs.has_npm_secrets
&& github.actor != 'nektos/act'
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
outputs:
new_release_published: ${{ steps.semantic_dry.outputs.new_release_published }}
new_release_version: ${{ steps.semantic_dry.outputs.new_release_version }}
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Get semantic release version
uses: cycjimmy/semantic-release-action@v3
id: semantic_dry
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
dry_run: true
branches: |
[
"+([0-9])?(.{+([0-9]),x}).x",
"release",
{
"name": "beta",
"prerelease": true
}
]
extends: |
extra_plugins: |
@semantic-release/[email protected]
@semantic-release/[email protected]
@semantic-release/[email protected]
@semantic-release/[email protected]
tag_version:
name: Add semantic release
needs: [check, check_version_number]
if: |
needs.check.outputs.has_npm_secrets
&& needs.check_version_number.outputs.new_release_published
&& github.actor != 'nektos/act'
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
runs-on: ubuntu-latest
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
persist-credentials: false # make sure the release step uses its own credentials
- name: Semantic Release
uses: cycjimmy/semantic-release-action@v3
id: semantic
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
semantic_version: 19
branches: |
[
"+([0-9])?(.{+([0-9]),x}).x",
"release",
{
"name": "beta",
"prerelease": true
}
]
extends: |
extra_plugins: |
@semantic-release/[email protected]
@semantic-release/[email protected]
@semantic-release/[email protected]
@semantic-release/[email protected]
- name: Changelog version
if: steps.semantic.outputs.new_release_published == 'true'
run: |
echo ${{ steps.semantic.outputs.new_release_version }}
outputs:
new_release: ${{ steps.semantic.outputs.new_release_published }}
new_version: ${{ steps.semantic.outputs.new_release_version }}