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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
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/hermes_cli/test_runtime_repair.py::TestWindowsRuntimeSelfLock
|
|
|
|
- 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
|