test(ci): preserve GitHub merge readiness
This commit is contained in:
@@ -43,22 +43,22 @@ SH
|
|||||||
chmod +x "$STUB_DIR/gh"
|
chmod +x "$STUB_DIR/gh"
|
||||||
|
|
||||||
run_guard() {
|
run_guard() {
|
||||||
local mode="$1"
|
local mode="$1" purpose="${2:-push}"
|
||||||
(
|
(
|
||||||
cd "$REPO_DIR" || exit
|
cd "$REPO_DIR" || exit
|
||||||
export PATH="$STUB_DIR:$PATH"
|
export PATH="$STUB_DIR:$PATH"
|
||||||
export MOSAIC_GH_CHECK_MODE="$mode"
|
export MOSAIC_GH_CHECK_MODE="$mode"
|
||||||
export MOSAIC_GH_CALL_LOG="$WORK_DIR/gh-calls.log"
|
export MOSAIC_GH_CALL_LOG="$WORK_DIR/gh-calls.log"
|
||||||
export MOSAIC_CI_QUEUE_AUDIT_LOG="$WORK_DIR/audit.jsonl"
|
export MOSAIC_CI_QUEUE_AUDIT_LOG="$WORK_DIR/audit.jsonl"
|
||||||
"$SCRIPT_DIR/ci-queue-wait.sh" --purpose push -t 0 -i 0
|
"$SCRIPT_DIR/ci-queue-wait.sh" --purpose "$purpose" -t 0 -i 0
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
failures=0
|
failures=0
|
||||||
assert_case() {
|
assert_case() {
|
||||||
local mode="$1" expected_rc="$2" expected_state="$3" output rc
|
local mode="$1" expected_rc="$2" expected_state="$3" purpose="${4:-push}" output rc
|
||||||
set +e
|
set +e
|
||||||
output=$(run_guard "$mode" 2>&1)
|
output=$(run_guard "$mode" "$purpose" 2>&1)
|
||||||
rc=$?
|
rc=$?
|
||||||
set -e
|
set -e
|
||||||
if [[ "$expected_rc" == zero && "$rc" -ne 0 ]]; then
|
if [[ "$expected_rc" == zero && "$rc" -ne 0 ]]; then
|
||||||
@@ -79,10 +79,12 @@ set -e
|
|||||||
: > "$WORK_DIR/gh-calls.log"
|
: > "$WORK_DIR/gh-calls.log"
|
||||||
assert_case success zero terminal-success
|
assert_case success zero terminal-success
|
||||||
assert_case pending nonzero pending
|
assert_case pending nonzero pending
|
||||||
assert_case failure nonzero terminal-failure
|
assert_case failure zero terminal-failure
|
||||||
assert_case late-failure nonzero terminal-failure
|
assert_case late-failure zero terminal-failure
|
||||||
|
assert_case failure nonzero terminal-failure merge
|
||||||
|
assert_case late-failure nonzero terminal-failure merge
|
||||||
|
|
||||||
if [[ $(grep -c 'check-runs?per_page=100&filter=latest' "$WORK_DIR/gh-calls.log") -lt 4 ]]; then
|
if [[ $(grep -c 'check-runs?per_page=100&filter=latest' "$WORK_DIR/gh-calls.log") -lt 6 ]]; then
|
||||||
echo "FAIL: expected every case to query all Checks API pages" >&2
|
echo "FAIL: expected every case to query all Checks API pages" >&2
|
||||||
failures=$((failures + 1))
|
failures=$((failures + 1))
|
||||||
fi
|
fi
|
||||||
@@ -92,4 +94,4 @@ if [[ "$failures" -ne 0 ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "GitHub check-runs regression passed (4/4 cases, including later-page failure)"
|
echo "GitHub check-runs regression passed (6/6 purpose-aware cases, including later-page failure)"
|
||||||
|
|||||||
Reference in New Issue
Block a user