-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathaction.yml
82 lines (82 loc) · 2.93 KB
/
action.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
---
name: Version Bumper Action
author: TomerFi
description: Automated semantic version bumps based on conventional commits
branding:
icon: package
color: gray-dark
inputs:
source:
description: Source for the bump, any semver string or 'git' to fetch from tags.
required: false
default: git
bump:
description: Target bump, 'major' | 'minor' | 'patch' | 'auto'. An 'auto' bump only works with a 'git' source.
required: false
default: auto
label:
description: Development iteration build label. Defaults to '-dev'.
required: false
default: -dev
path:
description: When source is 'git', set folder in the git. Defaults to running workspace.
required: false
default: ${{ github.workspace }}
outputs:
current:
description: The original version.
value: ${{ steps.bumper.outputs.current }}
bump:
description: The bump performed.
value: ${{ steps.bumper.outputs.bump }}
next:
description: The next version.
value: ${{ steps.bumper.outputs.next }}
dev:
description: The next development iteration version.
value: ${{ steps.bumper.outputs.dev }}
bump_object:
description: The original object returned from the version-bumper tool.
value: ${{ steps.bumper.outputs.bump_object }}
# segregated version parts
major_part:
description: The major part of the next version.
value: ${{ steps.bumper.outputs.major_part }}
minor_part:
description: The minor part of the next version.
value: ${{ steps.bumper.outputs.minor_part }}
patch_part:
description: The patch part of the next version.
value: ${{ steps.bumper.outputs.patch_part }}
dev_patch_part:
description: The patch part of the development iteration.
value: ${{ steps.bumper.outputs.dev_patch_part }}
runs:
using: composite
steps:
- shell: bash
env:
VB_VERSION: 4.0.3
run: npm install -g @tomerfi/version-bumper@${{ env.VB_VERSION }}
- shell: bash
id: bumper
run: |
# invoke the version bumper tool
bo=$(version-bumper -b=${{ inputs.bump }} -l=${{ inputs.label }} -s=${{ inputs.source }} ${{ inputs.path }})
# parse output
current=$(echo $bo | jq '.current' --raw-output)
bump=$(echo $bo | jq '.bump' --raw-output)
next=$(echo $bo | jq '.next' --raw-output)
dev=$(echo $bo | jq '.dev' --raw-output)
IFS='.' read -r major_part minor_part patch_part <<<$(echo $next)
dev_patch_part=$(echo $dev | cut -d "." -f 3)
# save outputs
echo "current=$current" >> $GITHUB_OUTPUT
echo "bump=$bump" >> $GITHUB_OUTPUT
echo "next=$next" >> $GITHUB_OUTPUT
echo "dev=$dev" >> $GITHUB_OUTPUT
echo "bump_object=$bo" >> $GITHUB_OUTPUT
echo "major_part=$major_part" >> $GITHUB_OUTPUT
echo "minor_part=$minor_part" >> $GITHUB_OUTPUT
echo "patch_part=$patch_part" >> $GITHUB_OUTPUT
echo "dev_patch_part=$dev_patch_part" >> $GITHUB_OUTPUT