-
Notifications
You must be signed in to change notification settings - Fork 1
/
action.yml
52 lines (49 loc) · 1.88 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
name: 'Set project version'
description: 'Set project version to YYYY.MM.DD.BUILD'
inputs:
version-file:
description: 'File containing project version'
required: false
default: package.json
version-stub:
description: 'Version hardcoded in project file and replaced with resulting one'
required: false
default: '0.0.0.0'
leading-zeros:
description: 'Pad month and day with 0: 06 vs 6'
required: false
default: false
time-zone:
description: Time zone to be used to determine the current date/time
required: false
version-file-exists:
description: Fail if specified version-file does not exist
required: false
default: true
outputs:
project-version:
description: "Project version"
value: ${{ steps.set-version.outputs.project-version }}
runs:
using: "composite"
steps:
- name: Set project version to current date in YYYY.MM.DD.BUILD format
id: set-version
run: |
[[ ${{ inputs.time-zone != '' }} ]] && export TZ=${{ inputs.time-zone }}
VERSION=$(date $([[ ${{ inputs.leading-zeros }} = true ]] && echo '+%Y.%m.%d' || echo '+%Y.%-m.%-d')).${{ github.run_number }}
if [ "${{ inputs.version-file-exists }}" = true ]; then
if test -f "${{ inputs.version-file }}"; then
echo "Set project version to '$VERSION'" && \
sed -i "s/${{ inputs.version-stub }}/$VERSION/" ${{ inputs.version-file }} && \
echo "::group::Modified ${{ inputs.version-file }}" && \
cat ${{ inputs.version-file }} && \
echo "::endgroup::"
else
echo "::error file=${{ inputs.version-file-exists }},line=1::${{ inputs.version-file-required }} could not be found but is required" && \
exit 1
fi
fi
echo "project-version=$VERSION" >> $GITHUB_OUTPUT
echo "VERSION=$VERSION" >> $GITHUB_ENV
shell: bash