-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaction.yml
58 lines (48 loc) · 1.77 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
name: 'Parse Project Release'
description: 'Github Action to parse the project, release, and test class to use from the tag.'
inputs:
ref:
description: 'The release or tag reference to parse.'
required: true
default: '${{ github.ref }}'
outputs:
release_number:
value: ${{ steps.parse-project-release.outputs.release_number }}
project_number:
value: ${{ steps.parse-project-release.outputs.project_number }}
version_number:
value: ${{ steps.parse-project-release.outputs.version_number }}
project_tester:
value: ${{ steps.parse-project-release.outputs.project_tester }}
runs:
using: "composite"
steps:
- name: Parse Project Release
id: parse-project-release
shell: bash
run: |
RELEASE_REF="${{ inputs.ref }}"
echo "Tag: ${RELEASE_REF}"
if [[ ${RELEASE_REF} =~ ^refs/tags/(v([1-4])\.([0-9]+)\.([0-9]+))$ ]]; then
RELEASE_NUM=${BASH_REMATCH[1]}
PROJECT_NUM=${BASH_REMATCH[2]}
VERSION_NUM=${BASH_REMATCH[3]}
echo "::set-output name=release_number::${RELEASE_NUM}"
echo "::set-output name=project_number::${PROJECT_NUM}"
echo "::set-output name=version_number::${VERSION_NUM}"
echo "Project: ${PROJECT_NUM}, Version: ${VERSION_NUM}, Release: ${RELEASE_NUM}, User: ${{ github.actor }}"
if [[ ${PROJECT_NUM} -eq 3 ]]; then
if [[ ${VERSION_NUM} -eq 0 ]]; then
TEST_CLASS="Project3aTest"
else
TEST_CLASS="Project3bTest"
fi
else
TEST_CLASS="Project${PROJECT_NUM}Test"
fi
echo "Test Class: ${TEST_CLASS}"
echo "::set-output name=project_tester::${TEST_CLASS}"
exit 0
fi
echo "::error ::The release tag ${RELEASE_REF} in an unexpected format."
exit 1