chore: initial sanitized public snapshot
This commit is contained in:
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
release_type() {
|
||||
local current="${1#v}"
|
||||
local baseline="${2#v}"
|
||||
local current_major current_minor baseline_major baseline_minor
|
||||
|
||||
IFS='.' read -r current_major current_minor _ <<< "${current}"
|
||||
IFS='.' read -r baseline_major baseline_minor _ <<< "${baseline}"
|
||||
|
||||
if [ "${current_major}" != "${baseline_major}" ]; then
|
||||
printf '%s\n' major
|
||||
elif [ "${current_minor}" != "${baseline_minor}" ]; then
|
||||
printf '%s\n' minor
|
||||
else
|
||||
printf '%s\n' patch
|
||||
fi
|
||||
}
|
||||
|
||||
run_self_test() {
|
||||
[ "$(release_type v2.0.0 v1.9.9)" = major ]
|
||||
[ "$(release_type v1.3.0 v1.2.9)" = minor ]
|
||||
[ "$(release_type v1.2.4 v1.2.3)" = patch ]
|
||||
}
|
||||
|
||||
if [ "${1:-}" = "--self-test" ]; then
|
||||
run_self_test
|
||||
echo "SemVer release-type self-test passed"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
release_tag="${1:?release tag is required}"
|
||||
git rev-parse --verify "${release_tag}^{commit}" >/dev/null
|
||||
|
||||
baseline_tag="$({ git tag --merged "${release_tag}" --sort=-version:refname | grep -Fxv "${release_tag}" || true; } | head -n 1)"
|
||||
if [ -z "${baseline_tag}" ]; then
|
||||
echo "No earlier SemVer tag before ${release_tag}; skipping baseline comparison"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
release_kind="$(release_type "${release_tag}" "${baseline_tag}")"
|
||||
for package in \
|
||||
aria2-rust-pro-cli \
|
||||
aria2-rust-pro-compat \
|
||||
aria2-rust-pro-core \
|
||||
aria2-rust-pro-protocol \
|
||||
aria2-rust-pro-rpc \
|
||||
aria2-rust-pro-storage; do
|
||||
cargo semver-checks check-release \
|
||||
--package "${package}" \
|
||||
--baseline-rev "${baseline_tag}" \
|
||||
--release-type "${release_kind}"
|
||||
done
|
||||
Reference in New Issue
Block a user