Files
hermes-agent/.github/workflows/windows-venv-e2e.yml
ethernet 1fc6bc8cee feat(ci): add windows-latest-32-arm-core and use it
also bigger runs where needed
2026-09-24 16:49:26 -04:00

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