mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-11-13 08:38:43 +03:00
sh: add OTA test helper script [ci skip]
Adds a script for helping to verify that an OTA update (i.e. from arvo at one revision to another) applies cleanly. This only performs the upgrade on a single fake ship, so it's limited in what kind of problems it can identify. It *can* catch particularly nasty errors, however, so serves as a useful sanity check.
This commit is contained in:
parent
385e9cd9e0
commit
c7fe6f4082
73
sh/test-arvo-upgrade-path
Executable file
73
sh/test-arvo-upgrade-path
Executable file
@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
usage() {
|
||||
local error="$1"
|
||||
|
||||
cat >&2 <<EOF
|
||||
Usage:
|
||||
$0 FROM_REVISION TO_REVISION
|
||||
|
||||
Synopsis:
|
||||
Test an Arvo OTA update on a fake ship.
|
||||
|
||||
Example:
|
||||
$0 arvo.2019.11.6 arvo.2019.11.8
|
||||
|
||||
Error:
|
||||
-> $error
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
args="$@"
|
||||
|
||||
if [[ -z "$args" ]]; then
|
||||
usage "No arguments specified."
|
||||
fi
|
||||
|
||||
FROM=$1
|
||||
TO=$2
|
||||
|
||||
SHIP="zod"
|
||||
START=$(git rev-parse HEAD)
|
||||
|
||||
cleanup () {
|
||||
if [ -e ./$PIER/.vere.lock ]
|
||||
then kill $(< ./$PIER/.vere.lock) || true;
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
boot_ship() {
|
||||
ship=$1
|
||||
rev=$2
|
||||
|
||||
git checkout $rev
|
||||
make install
|
||||
urbit -d -F $ship -B bin/brass.pill
|
||||
}
|
||||
|
||||
mount_home() {
|
||||
pier=$1
|
||||
|
||||
herb ./$pier -p hood -d "+hood/mount /=home="
|
||||
}
|
||||
|
||||
update_arvo() {
|
||||
pier=$1
|
||||
rev=$2
|
||||
|
||||
git checkout $rev
|
||||
rsync -zr --delete ./pkg/arvo/ ./$pier/home
|
||||
herb ./$pier -p hood -d "+hood/commit %home"
|
||||
}
|
||||
|
||||
boot_ship $SHIP $FROM
|
||||
mount_home $SHIP
|
||||
update_arvo $SHIP $TO
|
||||
|
||||
cleanup
|
||||
|
||||
git checkout $START
|
Loading…
Reference in New Issue
Block a user