-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
80 lines (71 loc) · 2.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
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
#
# Copyright 2024 ABSA Group Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: 'Version Tag Check'
description: 'A GH action for validating version tag sequences and ensuring compliance with versioning standards in repositories.'
inputs:
github-repository:
description: 'The GitHub repository to check for the latest version tag. Example: "owner/repo".'
required: true
version-tag:
description: 'The version tag sequence to validate. Example: "v1.2.3".'
required: true
branch:
description: 'The branch to check for the latest version tag. Example: "master".'
required: true
fails-on-error:
description: 'Set to "true" to fail the action if validation errors are found.'
required: false
default: 'true'
outputs:
valid:
description: 'Indicates whether the version tag sequence is valid ("true" or "false").'
value: ${{ steps.version-tag-check.outputs.valid }}
branding:
icon: 'book'
color: 'yellow'
runs:
using: 'composite'
steps:
# setup-python is not called as it is expected that it was done in the workflow that uses this action
- name: Install Python dependencies
run: |
python_version=$(python --version 2>&1 | grep -oP '\d+\.\d+\.\d+')
minimal_required_version="3.11.0"
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d\n", $1,$2,$3); }'; }
echo "Current Python version: $python_version"
echo "Minimal required Python version: $minimal_required_version"
if [ $(version $python_version) -lt $(version $minimal_required_version) ]; then
echo "Python version is less than $minimal_required_version"
exit 1
else
echo "Python version meets the minimum requirement of $minimal_required_version"
fi
python -m venv .venv
source .venv/bin/activate
pip install -r ${{ github.action_path }}/requirements.txt
shell: bash
- name: Call version tag check logic
id: version-tag-check
env:
INPUT_GITHUB_TOKEN: ${{ env.GITHUB_TOKEN }}
INPUT_GITHUB_REPOSITORY: ${{ inputs.github-repository }}
INPUT_VERSION_TAG: ${{ inputs.version-tag }}
INPUT_BRANCH: ${{ inputs.branch }}
INPUT_FAILS_ON_ERROR: ${{ inputs.fails-on-error }}
run: |
source .venv/bin/activate
python ${{ github.action_path }}/main.py
shell: bash