-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathaction.yaml
More file actions
59 lines (50 loc) · 1.78 KB
/
action.yaml
File metadata and controls
59 lines (50 loc) · 1.78 KB
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
name: Semantic release
description: Run semantic-release.
inputs:
GH_TOKEN:
description: "GITHUB_TOKEN with write for packages and repository."
required: true
NODEJS_VERSION:
description: "Nodejs version."
required: false
default: "20"
outputs:
NEW_RELEASE:
description: "Equal to true if there is new release, false if not."
value: ${{ steps.new_release.outputs.NEW_RELEASE }}
NEW_VERSION:
description: "New release version."
value: ${{ steps.release_version.outputs.NEW_VERSION }}
runs:
using: "composite"
steps:
- name: Restore cache
uses: autonomous-testing/npm-install-action@v2.3.1
- name: Check if there is new release
id: new_release
shell: bash
env:
GH_TOKEN: ${{inputs.GH_TOKEN}}
NPM_TOKEN: ${{inputs.GH_TOKEN}}
run: |
raw_new_release=$(npx semantic-release --dry-run --verify-release | grep "Published release" | wc -l || echo 0)
[[ "${raw_new_release}" == "1" ]] && new_release=true || new_release=false
echo "NEW_RELEASE=${new_release}" >> $GITHUB_OUTPUT
echo "NEW_RELEASE=${new_release}"
- name: Release version
id: release_version
shell: bash
env:
GH_TOKEN: ${{inputs.GH_TOKEN}}
NPM_TOKEN: ${{inputs.GH_TOKEN}}
run: |
raw_release_info=$(npx semantic-release --dry-run --verify-release | grep "Published release" || echo no_release)
new_version=$(echo $raw_release_info | sed -nE 's/.*Published release ([0-9]+\.[0-9]+\.[0-9]+).*/\1/p')
echo "NEW_VERSION=${new_version}" >> $GITHUB_OUTPUT
echo "NEW_VERSION=${new_version}"
- name: Semantic release
shell: bash
env:
GH_TOKEN: ${{inputs.GH_TOKEN}}
NPM_TOKEN: ${{inputs.GH_TOKEN}}
run: npx semantic-release