e2e-desktop-update ran with continue-on-error, so a PR touching the Desktop update path could merge on a red "Update now" hand-off. It has passed every main-push shard on record (48/48 over the last 12 main CI runs), so it now gates the merge whenever the e2e_desktop_update lane fires, like the Linux e2e-upgrade shards and the Windows install + update journey already do for e2e_upgrade (skipped = success otherwise). windows-venv-e2e.yml listed tests/hermes_cli/test_runtime_repair.py::TestWindowsRuntimeSelfLock, a file that never existed on main; run_tests.sh dropped it silently. The in-use-runtime replacement it meant to prove now lives in pm and is tests/pm/test_held_entry_windows_live.py. Tests pin both: every real-update suite reaches all-checks-pass, is gated on its lane and is never continue-on-error; every path the wine2e lane runs is an existing test file. (cherry picked from commit f4791428341afaf67cc53775653dde197591fa4f) (cherry picked from commit 5d3a4b505fe5c3858a6bb7f3554c97eb272231ca)
83 lines
3.1 KiB
YAML
83 lines
3.1 KiB
YAML
name: Windows venv-holder live E2E
|
|
|
|
# ON-DEMAND ONLY (fleet-update #91277, venv-holder consolidation work).
|
|
#
|
|
# Runs the live venv-holder E2E suite on a real windows-latest runner:
|
|
# spawns actual processes with realistic Hermes argv shapes and drives the
|
|
# REAL detection/classification/exemption code against the live process
|
|
# table — the coverage that cannot exist on the Linux lanes and that the
|
|
# maintainer cannot exercise locally before the work reaches main.
|
|
#
|
|
# Deliberately NOT wired to pull_request/main: it fires only on pushes to
|
|
# wine2e/** working branches, so it costs nothing on normal PRs. Delete or
|
|
# keep dormant after the venv-holder work lands.
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'wine2e/**'
|
|
workflow_call:
|
|
inputs:
|
|
release:
|
|
description: 'Stable-release candidate run. Unused by the jobs; the caller passes it for a uniform callable surface.'
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
# A workflow_call run (stable release) shares the caller's commit; its group
|
|
# includes github.run_id so a rerun of the parent gets a fresh group instead
|
|
# of cancelling this child mid-flight. wine2e push runs keep ref-scoped
|
|
# collapse as before.
|
|
concurrency:
|
|
group: windows-venv-e2e-${{ inputs.release == true && github.run_id || github.ref }}
|
|
cancel-in-progress: ${{ inputs.release != true }}
|
|
|
|
jobs:
|
|
venv-holder-e2e:
|
|
name: venv-holder live E2E (windows-latest)
|
|
runs-on: windows-latest-32-core
|
|
timeout-minutes: 25
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7.0.1
|
|
with:
|
|
# The stable caller dispatches on the candidate tag; github.sha is
|
|
# the exact candidate commit there and the head SHA everywhere else.
|
|
ref: ${{ github.sha }}
|
|
|
|
- name: Set up locked Python and test dependencies
|
|
uses: ./.github/actions/setup-pm
|
|
with:
|
|
extras: '["messaging"]'
|
|
test-environment: 'true'
|
|
prune-python-cache: true
|
|
|
|
- name: Run venv-holder live E2E
|
|
# Canonical runner (scripts/run_tests.sh) — never bare pytest: it
|
|
# enforces credential hygiene, TZ, temp HERMES_HOME and subprocess
|
|
# isolation. The live files are host-marked windows-only, so the
|
|
# runner collects them on this runner instead of skipping them.
|
|
shell: bash
|
|
run: |
|
|
set -uo pipefail
|
|
bash scripts/run_tests.sh \
|
|
tests/hermes_cli/test_venv_holder_windows_live.py \
|
|
tests/hermes_cli/test_taskkill_identity_windows_live.py \
|
|
tests/hermes_cli/test_git_trampoline_windows_live.py \
|
|
tests/pm/test_held_entry_windows_live.py
|
|
|
|
- name: Run Telegram CLOSE-WAIT reconnect live E2E (#87057)
|
|
shell: bash
|
|
run: |
|
|
set -uo pipefail
|
|
bash scripts/run_tests.sh tests/gateway/test_telegram_closewait_windows_live.py
|
|
|
|
- name: Run background-executor spawn parity live E2E (#70716)
|
|
shell: bash
|
|
run: |
|
|
set -uo pipefail
|
|
bash scripts/run_tests.sh tests/tools/test_process_registry_windows_live.py
|