smoketest: don't run the pre-push hook when pushing to the VM
shellcheck / shellcheck (push) Failing after 16s

upstream_set pushes the commit under test from the working copy, so
coredesktop-dev's pre-push hook ran make check on every push to the VM.
Inside the smoketest those checks saw VM_GIT_URL and friends, the
smoketest tests pushed to the real VM and failed, and the hook stopped
the push, failing the installed image's build. The push now uses
--no-verify, and the tests clear the smoketest's variables.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 07:31:55 -07:00
co-authored by Claude Opus 5.5
parent 523c5b9b15
commit 7ae6a5c1be
3 changed files with 14 additions and 1 deletions
+3 -1
View File
@@ -99,7 +99,9 @@ upstream_set() {
local sha
sha="$(git -C "$SMOKETEST_REPO" rev-parse --verify --quiet "$1^{commit}")" \
|| fail "no such commit: $1"
GIT_SSH_COMMAND="${VM_GIT_SSH:-ssh}" git -C "$SMOKETEST_REPO" push --quiet --force \
# --no-verify: a pre-push hook in the working copy (coredesktop-dev's runs
# make check) is for pushes to the real upstream, not to the VM
GIT_SSH_COMMAND="${VM_GIT_SSH:-ssh}" git -C "$SMOKETEST_REPO" push --quiet --force --no-verify \
"${VM_GIT_URL:-}$UPSTREAM" "$sha:refs/heads/main" || fail "couldn't push $1 to the VM"
}
+7
View File
@@ -44,6 +44,13 @@ upstream_main() {
[ "$(upstream_main)" = "$V2" ]
}
@test "pushing to the VM skips the working copy's pre-push hook" {
printf '%s\n' '#!/bin/bash' 'echo hook ran; exit 1' > "$SMOKETEST_REPO/.git/hooks/pre-push"
chmod +x "$SMOKETEST_REPO/.git/hooks/pre-push"
smoketest_prepare
[ "$(upstream_main)" = "$V2" ]
}
@test "prepare sends CoreDesktop's URLs to the fake upstream" {
smoketest_prepare
for url in "${COREDESKTOP_URLS[@]}"; do
+4
View File
@@ -15,6 +15,10 @@ common_setup() {
: > "$STUB_LOG"
export PATH="$STUB_BIN:$PATH"
unset COREDESKTOP
# Set when the tests run inside a smoketest (a pre-push hook's checks, say),
# where they would point the smoketest tests at the real VM
unset VM_GIT_SSH VM_GIT_URL SMOKETEST_REPO SMOKETEST_RESULTS SMOKETEST_SHARED \
SMOKETEST_REF SMOKETEST_VM_DIR IMAGE_REF VARIANT
}
# A test file that needs more setup defines its own setup that calls this first