Files
scylla/SCYLLA-VERSION-GEN
Anna Mikhlin 86472e43e1
Some checks failed
Urgent Issue Reminder / reminder (push) Has been cancelled
Check if commits are promoted / check-commit (push) Has been cancelled
Backport with Jira Integration / backport-on-push (push) Has been cancelled
Backport with Jira Integration / backport-on-label (push) Has been cancelled
Backport with Jira Integration / backport-chain (push) Has been cancelled
Notify PR Authors of Conflicts / notify_conflict_prs (push) Has been cancelled
Differential ShellCheck / lint (push) Has been cancelled
Trigger next gating / trigger-jenkins (push) Has been cancelled
Build with the latest Seastar / read-toolchain (push) Has been cancelled
Build with the latest Seastar / build-with-the-latest-seastar (Debug) (push) Has been cancelled
Build with the latest Seastar / build-with-the-latest-seastar (Dev) (push) Has been cancelled
Build with the latest Seastar / build-with-the-latest-seastar (RelWithDebInfo) (push) Has been cancelled
Check Reproducible Build / build-a (push) Has been cancelled
Check Reproducible Build / build-b (push) Has been cancelled
Check Reproducible Build / compare-checksum (push) Has been cancelled
clang-nightly / Build with clang nightly (Debug) (push) Has been cancelled
clang-nightly / Build with clang nightly (Dev) (push) Has been cancelled
clang-nightly / Build with clang nightly (RelWithDebInfo) (push) Has been cancelled
Update ScyllaDB version to: 2026.3.0-dev
2026-04-26 15:30:13 +03:00

120 lines
3.0 KiB
Bash
Executable File

#!/bin/sh
USAGE=$(cat <<-END
Usage: $(basename "$0") [-h|--help] [-o|--output-dir PATH] [--date-stamp DATE] -- generate Scylla version and build information files.
Options:
-h|--help show this help message.
-o|--output-dir PATH specify destination path at which the version files are to be created.
-d|--date-stamp DATE manually set date for release parameter
-v|--verbose also print out the version number
By default, the script will attempt to parse 'version' file
in the current directory, which should contain a string of
'\$version-\$release' form.
Otherwise, it will call 'git log' on the source tree (the
directory, which contains the script) to obtain current
commit hash and use it for building the version and release
strings.
The script assumes that it's called from the Scylla source
tree.
The files created are:
SCYLLA-VERSION-FILE
SCYLLA-RELEASE-FILE
SCYLLA-PRODUCT-FILE
By default, these files are created in the 'build'
subdirectory under the directory containing the script.
The destination directory can be overridden by
using '-o PATH' option.
END
)
DATE=""
PRINT_VERSION=false
while [ $# -gt 0 ]; do
opt="$1"
case $opt in
-h|--help)
echo "$USAGE"
exit 0
;;
-o|--output-dir)
OUTPUT_DIR="$2"
shift
shift
;;
--date-stamp)
DATE="$2"
shift
shift
;;
-v|--verbose)
PRINT_VERSION=true
shift
;;
*)
echo "Unexpected argument found: $1"
echo
echo "$USAGE"
exit 1
;;
esac
done
SCRIPT_DIR="$(dirname "$0")"
if [ -z "$OUTPUT_DIR" ]; then
OUTPUT_DIR="$SCRIPT_DIR/build"
fi
if [ -z "$DATE" ]; then
DATE=$(date --utc +%Y%m%d)
fi
# Default scylla product/version tags
PRODUCT=scylla
VERSION=2026.3.0-dev
if test -f version
then
SCYLLA_VERSION=$(cat version | awk -F'-' '{print $1}')
SCYLLA_RELEASE=$(cat version | awk -F'-' '{print $2}')
else
SCYLLA_VERSION=$VERSION
if [ -z "$SCYLLA_RELEASE" ]; then
GIT_COMMIT=$(git -C "$SCRIPT_DIR" log --pretty=format:'%h' -n 1 --abbrev=12)
# For custom package builds, replace "0" with "counter.yourname",
# where counter starts at 1 and increments for successive versions.
# This ensures that the package manager will select your custom
# package over the standard release.
# Do not use any special characters like - or _ in the name above!
# These characters either have special meaning or are illegal in
# version strings.
SCYLLA_BUILD=0
SCYLLA_RELEASE=$SCYLLA_BUILD.$DATE.$GIT_COMMIT
elif [ -f "$OUTPUT_DIR/SCYLLA-RELEASE-FILE" ]; then
echo "setting SCYLLA_RELEASE only makes sense in clean builds" 1>&2
exit 1
fi
fi
if [ -f "$OUTPUT_DIR/SCYLLA-RELEASE-FILE" ]; then
GIT_COMMIT_FILE=$(cat "$OUTPUT_DIR/SCYLLA-RELEASE-FILE" | rev | cut -d . -f 1 | rev)
if [ "$GIT_COMMIT" = "$GIT_COMMIT_FILE" ]; then
exit 0
fi
fi
if $PRINT_VERSION; then
echo "$SCYLLA_VERSION-$SCYLLA_RELEASE"
fi
mkdir -p "$OUTPUT_DIR"
echo "$SCYLLA_VERSION" > "$OUTPUT_DIR/SCYLLA-VERSION-FILE"
echo "$SCYLLA_RELEASE" > "$OUTPUT_DIR/SCYLLA-RELEASE-FILE"
echo "$PRODUCT" > "$OUTPUT_DIR/SCYLLA-PRODUCT-FILE"