-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Expand file tree
/
Copy pathaction.yml
More file actions
51 lines (51 loc) · 1.89 KB
/
action.yml
File metadata and controls
51 lines (51 loc) · 1.89 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
name: Semantic Release
description: Deploy using semantic-release
inputs:
DEFAULT_BRANCH:
description: Name of the default release branch
default: main
DRY_RUN:
description: Runs semantic-release with the "--dry-run" flag to simulate a release but not actually do one
default: false
GITHUB_TOKEN:
description: Token to use to update version in 'package.json' and create GitHub release
required: true
NPM:
description: Whether or not to release as an NPM package
default: false
NPM_TOKEN:
description: Token to publish to NPM (not required for CodeArtifact)
outputs:
VERSION:
description: Version of the new release, or empty if release is unchanged
value: ${{ steps.semantic-release.outputs.version }}
runs:
using: composite
steps:
- name: Installing semantic-release
run: |
echo "Installing semantic-release..."
npm install semantic-release@25 @semantic-release/git@10 --no-save
shell: bash
- name: Run semantic-release
id: semantic-release
env:
DEFAULT_BRANCH: ${{ inputs.DEFAULT_BRANCH }}
GITHUB_TOKEN: ${{ inputs.GITHUB_TOKEN }}
NPM: ${{ inputs.NPM }}
NPM_TOKEN: ${{ inputs.NPM_TOKEN }}
run: |
echo "version=" >> $GITHUB_OUTPUT
if [ ${{ inputs.DRY_RUN }} == true ]; then
echo "Running semantic-release (dry run)..."
npx semantic-release --dry-run -e ./.github/actions/semantic-release/release.config.js
else
OLD_VERSION=$(node -p -e "require('./package.json').version")
echo "Running semantic-release..."
npx semantic-release -e ./.github/actions/semantic-release/release.config.js
NEW_VERSION=$(node -p -e "require('./package.json').version")
if [ "$OLD_VERSION" != "$NEW_VERSION" ]; then
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
fi
fi
shell: bash