68 lines
1.9 KiB
Bash
68 lines
1.9 KiB
Bash
#!/bin/bash
|
|
MAJOR="$1"
|
|
MINOR="$2"
|
|
PATCH="$3"
|
|
REVISION="$4"
|
|
SUFFIX="$5"
|
|
METADATA="$6"
|
|
INCREMENT_MODE="${7:-default}"
|
|
GIT_SHA_METADATA="$8"
|
|
|
|
if [[ ! -f "$GITHUB_OUTPUT" ]]; then
|
|
# Write to stdout if the output file doesn't exist.
|
|
GITHUB_OUTPUT="/dev/fd/1"
|
|
fi
|
|
|
|
NEXT_MAJOR=$((MAJOR + 1))
|
|
NEXT_MINOR=$((MINOR + 1))
|
|
NEXT_PATCH=$((PATCH + 1))
|
|
NEXT_REVISION=$((REVISION + 1))
|
|
NEXT_SUFFIX="$SUFFIX"
|
|
NEXT_METADATA="$METADATA"
|
|
if [[ "$GIT_SHA_METADATA" == "true" ]]; then
|
|
NEXT_METADATA="$GITHUB_SHA"
|
|
fi
|
|
|
|
echo "nextMajor=$NEXT_MAJOR" >> "$GITHUB_OUTPUT"
|
|
echo "nextMinor=$NEXT_MINOR" >> "$GITHUB_OUTPUT"
|
|
echo "nextPatch=$NEXT_PATCH" >> "$GITHUB_OUTPUT"
|
|
echo "nextRevision=$NEXT_REVISION" >> "$GITHUB_OUTPUT"
|
|
echo "nextSuffix=$NEXT_SUFFIX" >> "$GITHUB_OUTPUT"
|
|
echo "nextMetadata=$NEXT_METADATA" >> "$GITHUB_OUTPUT"
|
|
|
|
|
|
# This script assumes that thre version numbers is the desired default format.
|
|
NEXT_VERSION="${MAJOR:-0}.${MINOR:-0}"
|
|
if [[ "$INCREMENT_MODE" == "default" ]]; then
|
|
if [[ -n "$REVISION" ]]; then
|
|
NEXT_VERSION="$NEXT_VERSION.${PATCH:-0}.$NEXT_REVISION"
|
|
elif [[ -n "$PATCH" ]]; then
|
|
NEXT_VERSION="$NEXT_VERSION.$NEXT_PATCH"
|
|
elif [[ -n "$MINOR" ]]; then
|
|
NEXT_VERSION="${MAJOR:-0}.$NEXT_MINOR.0"
|
|
else
|
|
NEXT_VERSION="$NEXT_MAJOR.0.0"
|
|
fi
|
|
elif [[ "$INCREMENT_MODE" == "major" ]]; then
|
|
NEXT_VERSION="$NEXT_MAJOR.0.0"
|
|
elif [[ "$INCREMENT_MODE" == "minor" ]]; then
|
|
NEXT_VERSION="${MAJOR:-0}.$NEXT_MINOR.0"
|
|
elif [[ "$INCREMENT_MODE" == "patch" ]]; then
|
|
NEXT_VERSION="${MAJOR:-0}.${MINOR:-0}.$NEXT_PATCH"
|
|
elif [[ "$INCREMENT_MODE" == "revision" ]]; then
|
|
NEXT_VERSION="${MAJOR:-0}.${MINOR:-0}.${PATCH:-0}.$NEXT_REVISION"
|
|
else
|
|
echo "Invalid increment mode: $INCREMENT_MODE"
|
|
exit 1
|
|
fi
|
|
|
|
if [[ -n "$NEXT_SUFFIX" ]]; then
|
|
NEXT_VERSION="$NEXT_VERSION-$NEXT_SUFFIX"
|
|
fi
|
|
|
|
if [[ -n "$NEXT_METADATA" ]]; then
|
|
NEXT_VERSION="$NEXT_VERSION+$NEXT_METADATA"
|
|
fi
|
|
|
|
echo "nextVersion=$NEXT_VERSION" >> "$GITHUB_OUTPUT"
|