mirror of
https://github.com/reecetech/version-increment.git
synced 2025-12-21 06:25:44 +00:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c0c7194013 | ||
|
|
a54c16bb35 | ||
|
|
8766e6c6af | ||
|
|
8700256121 | ||
|
|
2fa6f4f0f9 | ||
|
|
ef5bc12fc4 | ||
|
|
efc89dc7d0 |
@@ -6,7 +6,7 @@
|
||||
|
||||
```yaml
|
||||
- name: Get next version
|
||||
uses: reecetech/version-increment
|
||||
uses: reecetech/version-increment@2021.10.4
|
||||
id: version
|
||||
with:
|
||||
scheme: semver
|
||||
|
||||
11
action.yml
11
action.yml
@@ -1,11 +1,10 @@
|
||||
---
|
||||
name: 'Version Increment'
|
||||
description: |
|
||||
Inspects the git tags to determine the current normal version, and returns the
|
||||
next version number.
|
||||
description: Inspects the git tags to determine the current normal version, and returns the next version number
|
||||
|
||||
A normal version will be returned if the branch is the default branch
|
||||
(usually `main`), otherwise a pre-release version will be returned.
|
||||
branding:
|
||||
icon: plus
|
||||
color: purple
|
||||
|
||||
inputs:
|
||||
scheme:
|
||||
@@ -38,5 +37,5 @@ runs:
|
||||
- id: version-increment
|
||||
run: ${{ github.action_path }}/version-increment.sh
|
||||
shell: bash
|
||||
with:
|
||||
env:
|
||||
current_version: ${{ steps.version-lookup.outputs.current-version }}
|
||||
|
||||
15
shared.sh
15
shared.sh
@@ -2,12 +2,25 @@
|
||||
# shellcheck disable=SC2034
|
||||
set -euo pipefail
|
||||
|
||||
# see: https://semver.org/spec/v2.0.0.html#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
|
||||
##==----------------------------------------------------------------------------
|
||||
## SemVer regexes
|
||||
## see: https://semver.org/spec/v2.0.0.html#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
|
||||
|
||||
pcre_semver='^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$'
|
||||
pcre_master_ver='^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)$'
|
||||
pcre_allow_vprefix="^v{0,1}${pcre_master_ver:1}"
|
||||
pcre_old_calver='^(?P<major>0|[1-9]\d*)-0{0,1}(?P<minor>0|[0-9]\d*)-R(?P<patch>0|[1-9]\d*)$'
|
||||
|
||||
##==----------------------------------------------------------------------------
|
||||
## Input validation
|
||||
|
||||
input_errors='false'
|
||||
scheme="${INPUT_SCHEME:-semver}"
|
||||
if [[ "${scheme}" != 'semver' && "${scheme}" != 'calver' ]] ; then
|
||||
echo "🛑 Value of 'scheme' is not valid, choose from 'semver' or 'calver'" 1>&2
|
||||
input_errors='true'
|
||||
fi
|
||||
|
||||
##==----------------------------------------------------------------------------
|
||||
## MacOS compatibility - for local testing
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ function init_repo {
|
||||
run ../../version-increment.sh
|
||||
|
||||
print_run_info
|
||||
[ "$status" -eq 5 ] &&
|
||||
[ "$status" -eq 8 ] &&
|
||||
[[ "$output" = *"Environment variable 'current_version' is unset or empty"* ]]
|
||||
}
|
||||
|
||||
@@ -37,14 +37,13 @@ function init_repo {
|
||||
run ../../version-increment.sh
|
||||
|
||||
print_run_info
|
||||
[ "$status" -eq 6 ] &&
|
||||
[ "$status" -eq 8 ] &&
|
||||
[[ "$output" = *"Environment variable 'current_version' is not a valid normal version"* ]]
|
||||
}
|
||||
|
||||
@test "fails if invalid scheme given" {
|
||||
init_repo
|
||||
|
||||
export current_version=1.2.3
|
||||
export INPUT_SCHEME="foover"
|
||||
|
||||
run ../../version-increment.sh
|
||||
@@ -57,13 +56,12 @@ function init_repo {
|
||||
@test "fails if invalid increment given" {
|
||||
init_repo
|
||||
|
||||
export current_version=1.2.3
|
||||
export INPUT_INCREMENT="critical"
|
||||
|
||||
run ../../version-increment.sh
|
||||
|
||||
print_run_info
|
||||
[ "$status" -eq 7 ] &&
|
||||
[ "$status" -eq 8 ] &&
|
||||
[[ "$output" = *"Value of 'increment' is not valid, choose from 'major', 'minor', or 'patch'"* ]]
|
||||
}
|
||||
|
||||
@@ -6,25 +6,21 @@ script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
# shellcheck source=shared.sh
|
||||
source "${script_dir}/shared.sh"
|
||||
|
||||
if [[ -z "${current_version:-}" ]] ; then
|
||||
echo "🛑 Environment variable 'current_version' is unset or empty" 1>&2
|
||||
exit 5
|
||||
fi
|
||||
|
||||
if [[ -z "$(echo "${current_version}" | ${grep} -P "${pcre_master_ver}")" ]] ; then
|
||||
echo "🛑 Environment variable 'current_version' is not a valid normal version (M.m.p)" 1>&2
|
||||
exit 6
|
||||
fi
|
||||
|
||||
increment="${INPUT_INCREMENT:-patch}"
|
||||
if [[ "${increment}" != 'patch' && "${increment}" != 'minor' && "${increment}" != 'major' ]] ; then
|
||||
echo "🛑 Value of 'increment' is not valid, choose from 'major', 'minor', or 'patch'" 1>&2
|
||||
exit 7
|
||||
input_errors='true'
|
||||
fi
|
||||
|
||||
scheme="${INPUT_SCHEME:-semver}"
|
||||
if [[ "${scheme}" != 'semver' && "${scheme}" != 'calver' ]] ; then
|
||||
echo "🛑 Value of 'scheme' is not valid, choose from 'semver' or 'calver'" 1>&2
|
||||
if [[ -z "${current_version:-}" ]] ; then
|
||||
echo "🛑 Environment variable 'current_version' is unset or empty" 1>&2
|
||||
input_errors='true'
|
||||
elif [[ -z "$(echo "${current_version}" | ${grep} -P "${pcre_master_ver}")" ]] ; then
|
||||
echo "🛑 Environment variable 'current_version' is not a valid normal version (M.m.p)" 1>&2
|
||||
input_errors='true'
|
||||
fi
|
||||
|
||||
if [[ "${input_errors}" == 'true' ]] ; then
|
||||
exit 8
|
||||
fi
|
||||
|
||||
|
||||
@@ -6,9 +6,7 @@ script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
# shellcheck source=shared.sh
|
||||
source "${script_dir}/shared.sh"
|
||||
|
||||
scheme="${INPUT_SCHEME:-semver}"
|
||||
if [[ "${scheme}" != 'semver' && "${scheme}" != 'calver' ]] ; then
|
||||
echo "🛑 Value of 'scheme' is not valid, choose from 'semver' or 'calver'" 1>&2
|
||||
if [[ "${input_errors}" == 'true' ]] ; then
|
||||
exit 8
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user