smoketest: don't run the pre-push hook when pushing to the VM
shellcheck / shellcheck (push) Failing after 16s
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:
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user