mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 02:29:55 +02:00
feat(release): automate derived store versions
This commit is contained in:
53
packaging/version/prepare-release.sh
Executable file
53
packaging/version/prepare-release.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
repo_root="$(cd "$script_dir/../.." && pwd)"
|
||||
resolver="$script_dir/resolve-version.sh"
|
||||
version_file="${VNIDROP_VERSION_FILE:-$repo_root/version.properties}"
|
||||
next_version="${1:-}"
|
||||
|
||||
fail() {
|
||||
printf '%s\n' "$*" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
[[ -n $next_version ]] ||
|
||||
fail "Usage: $0 MAJOR.MINOR.PATCH"
|
||||
[[ -f $version_file ]] ||
|
||||
fail "Version file not found: $version_file"
|
||||
[[ $(grep -c '^PRODUCT_VERSION=' "$version_file") == 1 ]] ||
|
||||
fail "Expected exactly one PRODUCT_VERSION entry in $version_file"
|
||||
|
||||
current_version="$(
|
||||
VNIDROP_VERSION_FILE="$version_file" "$resolver" product
|
||||
)"
|
||||
current_android_code="$(
|
||||
VNIDROP_VERSION_FILE="$version_file" "$resolver" android-code
|
||||
)"
|
||||
temporary="$(mktemp "$(dirname "$version_file")/.version.properties.XXXXXX")"
|
||||
trap 'rm -f "$temporary"' EXIT
|
||||
|
||||
sed "s/^PRODUCT_VERSION=.*/PRODUCT_VERSION=$next_version/" \
|
||||
"$version_file" > "$temporary"
|
||||
|
||||
next_android_code="$(
|
||||
VNIDROP_VERSION_FILE="$temporary" "$resolver" android-code
|
||||
)"
|
||||
next_windows_package="$(
|
||||
VNIDROP_VERSION_FILE="$temporary" "$resolver" windows-package
|
||||
)"
|
||||
VNIDROP_VERSION_FILE="$temporary" "$resolver" verify >/dev/null
|
||||
|
||||
(( next_android_code > current_android_code )) ||
|
||||
fail "New version must be greater than $current_version"
|
||||
|
||||
chmod 644 "$temporary"
|
||||
mv "$temporary" "$version_file"
|
||||
trap - EXIT
|
||||
|
||||
printf 'Prepared VniDrop %s\n' "$next_version"
|
||||
printf ' Android version code: %s\n' "$next_android_code"
|
||||
printf ' Microsoft Store package: %s\n' "$next_windows_package"
|
||||
printf 'Next: make check-version\n'
|
||||
Reference in New Issue
Block a user