Ctrl K
ComunidadGuías…

scripts/test-release-metadata.sh

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
#!/bin/sh
set -eu

script_dir="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)"
temporary_dir="$(mktemp -d "${TMPDIR:-/tmp}/vastora-release-metadata-test.XXXXXX")"
cleanup() { rm -rf "$temporary_dir"; }
trap cleanup EXIT HUP INT TERM

git -C "$temporary_dir" init -q
git -C "$temporary_dir" config user.name test
git -C "$temporary_dir" config user.email test@example.invalid
printf '%s\n' '0.1.0-alpha.15' > "$temporary_dir/version.txt"
printf '%s\n' '{".":"0.1.0-alpha.15"}' > "$temporary_dir/.release-please-manifest.json"
printf '%s\n' '# Changelog' '## [0.1.0-alpha.15](https://example.invalid)' > "$temporary_dir/CHANGELOG.md"
git -C "$temporary_dir" add -- .release-please-manifest.json CHANGELOG.md version.txt
git -C "$temporary_dir" commit -qm baseline
base_sha="$(git -C "$temporary_dir" rev-parse HEAD)"

assert_compare() {
  actual="$(awk -f "$script_dir/compare-semver.awk" "$1" "$2")"
  if [ "$actual" != "$3" ]; then
    echo "Unexpected SemVer ordering for $1 and $2: $actual" >&2
    exit 1
  fi
}

assert_compare 0.1.0-alpha.9 0.1.0-alpha.10 -1
assert_compare 0.1.0-alpha.10 0.1.0-alpha.10 0
assert_compare 1.0.0-alpha 1.0.0 -1
assert_compare 2.0.0 1.99.99 1

printf '%s\n' '0.1.0-alpha.16' > "$temporary_dir/version.txt"
printf '%s\n' '{".":"0.1.0-alpha.16"}' > "$temporary_dir/.release-please-manifest.json"
printf '%s\n' '# Changelog' '## [0.1.0-alpha.16](https://example.invalid)' '## [0.1.0-alpha.15](https://example.invalid)' > "$temporary_dir/CHANGELOG.md"
"$script_dir/validate-release-metadata.sh" "$base_sha" "$temporary_dir" >/dev/null

printf '%s\n' 'unexpected source change' > "$temporary_dir/unexpected.txt"
git -C "$temporary_dir" add -- unexpected.txt
if "$script_dir/validate-release-metadata.sh" "$base_sha" "$temporary_dir" >/dev/null 2>&1; then
  echo "Release metadata validator accepted an unexpected file." >&2
  exit 1
fi
rm "$temporary_dir/unexpected.txt"
git -C "$temporary_dir" reset -q -- unexpected.txt

printf '%s\n' '{".":"0.1.0-alpha.99"}' > "$temporary_dir/.release-please-manifest.json"
if "$script_dir/validate-release-metadata.sh" "$base_sha" "$temporary_dir" >/dev/null 2>&1; then
  echo "Release metadata validator accepted mismatched versions." >&2
  exit 1
fi

printf '%s\n' '0.1.0-alpha.14' > "$temporary_dir/version.txt"
printf '%s\n' '{".":"0.1.0-alpha.14"}' > "$temporary_dir/.release-please-manifest.json"
printf '%s\n' '# Changelog' '## [0.1.0-alpha.14](https://example.invalid)' > "$temporary_dir/CHANGELOG.md"
if "$script_dir/validate-release-metadata.sh" "$base_sha" "$temporary_dir" >/dev/null 2>&1; then
  echo "Release metadata validator accepted a version downgrade." >&2
  exit 1
fi

echo "Release metadata validator test passed"