aad987e762
CI / powershell-installer (push) Waiting to run
CI / test (push) Failing after 2m39s
Hop-State: A_06FN5C39XCC4JXJEAKVD5S0 Hop-Proposal: R_06FN5C2KP6Z8BKCP0KK1QZ0 Hop-Task: T_06FN3MBF98GWD4NA5PA1RWG Hop-Attempt: AT_06FN5B04YJGZ2NFP2TJWM1R
84 lines
2.3 KiB
Bash
84 lines
2.3 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
cd "$root"
|
|
tmp_dir=$(mktemp -d 2>/dev/null || mktemp -d -t hop-installer-test)
|
|
cleanup() {
|
|
rm -rf "$tmp_dir"
|
|
}
|
|
trap cleanup EXIT HUP INT TERM
|
|
|
|
case $(uname -s) in
|
|
Darwin) os=darwin ;;
|
|
Linux) os=linux ;;
|
|
*) printf 'installer smoke test does not support %s\n' "$(uname -s)" >&2; exit 1 ;;
|
|
esac
|
|
case $(uname -m) in
|
|
x86_64 | amd64) arch=amd64 ;;
|
|
arm64 | aarch64) arch=arm64 ;;
|
|
*) printf 'installer smoke test does not support %s\n' "$(uname -m)" >&2; exit 1 ;;
|
|
esac
|
|
|
|
asset="hop_${os}_${arch}.tar.gz"
|
|
mkdir -p "$tmp_dir/payload" "$tmp_dir/fixtures" "$tmp_dir/mock-bin" "$tmp_dir/home"
|
|
go build -trimpath \
|
|
-ldflags '-X githop.xyz/GnosysLabs/Hop/internal/hop.Version=9.9.9-installer-test' \
|
|
-o "$tmp_dir/payload/hop" "$root/cmd/hop"
|
|
tar -czf "$tmp_dir/fixtures/$asset" -C "$tmp_dir/payload" hop
|
|
if command -v sha256sum >/dev/null 2>&1; then
|
|
hash=$(sha256sum "$tmp_dir/fixtures/$asset" | awk '{print $1}')
|
|
else
|
|
hash=$(shasum -a 256 "$tmp_dir/fixtures/$asset" | awk '{print $1}')
|
|
fi
|
|
printf '%s %s\n' "$hash" "$asset" >"$tmp_dir/fixtures/checksums.txt"
|
|
|
|
cat >"$tmp_dir/mock-bin/curl" <<'MOCK_CURL'
|
|
#!/bin/sh
|
|
set -eu
|
|
output=
|
|
url=
|
|
while [ "$#" -gt 0 ]; do
|
|
case "$1" in
|
|
-o) shift; output=$1 ;;
|
|
http://* | https://*) url=$1 ;;
|
|
esac
|
|
shift
|
|
done
|
|
case "$url" in
|
|
*/api/v1/repos/*/releases\?draft=false\&page=1\&limit=1)
|
|
printf '[{"tag_name":"v9.9.9-installer-test","prerelease":true,"draft":false}]'
|
|
;;
|
|
*/checksums.txt)
|
|
cp "$HOP_TEST_FIXTURES/checksums.txt" "$output"
|
|
;;
|
|
*/hop_*.tar.gz)
|
|
cp "$HOP_TEST_FIXTURES/${url##*/}" "$output"
|
|
;;
|
|
*)
|
|
printf 'unexpected installer URL: %s\n' "$url" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
MOCK_CURL
|
|
chmod 0755 "$tmp_dir/mock-bin/curl"
|
|
|
|
HOME="$tmp_dir/home" \
|
|
PATH="$tmp_dir/mock-bin:$PATH" \
|
|
HOP_TEST_FIXTURES="$tmp_dir/fixtures" \
|
|
HOP_GITEA_URL="https://gitea.test" \
|
|
HOP_REPOSITORY="GnosysLabs/Hop" \
|
|
HOP_INSTALL_DIR="$tmp_dir/home/bin" \
|
|
HOP_MODIFY_PATH=0 \
|
|
sh "$root/scripts/install.sh"
|
|
|
|
version=$($tmp_dir/home/bin/hop version)
|
|
[ "$version" = "hop 9.9.9-installer-test" ] || {
|
|
printf 'unexpected installed version: %s\n' "$version" >&2
|
|
exit 1
|
|
}
|
|
[ -s "$tmp_dir/home/.codex/skills/hop/SKILL.md" ] || {
|
|
printf 'installer did not install the embedded Hop skill\n' >&2
|
|
exit 1
|
|
}
|