c5fa202378
In the container build + vagrant test workflow, we have to run `make vmsync` from the env in which autoconf was run, which is the container. However, when using git worktrees (which is useful in this scenario to avoid having to overwrite your local builds) and a CentOS build container, the git inside is too old to understand worktrees, so let's avoid invoking git in any of the test harness scripts. Also make sure to restorecon after installing the new rpm-ostreed. Closes: #555 Approved by: cgwalters
51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
# Execute this code path on the host
|
|
if test -z "${INSIDE_VM:-}"; then
|
|
. ${commondir}/libvm.sh
|
|
vm_setup
|
|
|
|
if ! vm_ssh_wait 30; then
|
|
echo "ERROR: A running VM is required for 'make vmcheck'."
|
|
exit 1
|
|
fi
|
|
|
|
set -x
|
|
|
|
cd ${topsrcdir}
|
|
rm insttree -rf
|
|
make install DESTDIR=$(pwd)/insttree
|
|
vm_rsync
|
|
|
|
$SSH "env INSIDE_VM=1 /var/roothome/sync/tests/vmcheck/overlay.sh"
|
|
vm_reboot
|
|
exit 0
|
|
fi
|
|
|
|
set -x
|
|
|
|
# And then this code path in the VM
|
|
|
|
commit=$(rpm-ostree status --json | \
|
|
python -c '
|
|
import sys, json;
|
|
deployments = json.load(sys.stdin)["deployments"]
|
|
for deployment in deployments:
|
|
if deployment["booted"]:
|
|
print deployment["checksum"]
|
|
exit()')
|
|
|
|
if [[ -z $commit ]] || ! ostree rev-parse $commit; then
|
|
echo "Error while determining current commit" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cd /ostree/repo/tmp
|
|
rm vmcheck -rf
|
|
ostree checkout $commit vmcheck --fsync=0
|
|
rsync -rv /var/roothome/sync/insttree/usr/ vmcheck/usr/
|
|
ostree refs --delete vmcheck || true
|
|
ostree commit -b vmcheck -s '' --tree=dir=vmcheck --link-checkout-speedup
|
|
ostree admin deploy vmcheck
|