Skip to content

Commit c3e54ef

Browse files
committed
Fork-only: hunt the intermittent hostile-target hang
Twenty iterations of the two hostile suites in one job. The full Test workflow takes forty minutes and reproduces this about one run in four; these suites take three minutes each, so the same number of attempts costs an hour instead of most of a day. Not for PR warp-tech#2397. This workflow exists on this branch and no other.
1 parent f76771e commit c3e54ef

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

.github/workflows/hostile-hunt.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: Hostile hunt
2+
3+
# Fork-only. Not part of PR #2397 — this branch exists to reproduce an
4+
# intermittent hang in the hostile-target suite that appears on Linux CI and
5+
# never locally, at roughly one full run in four. The full suite takes forty
6+
# minutes to tell us nothing; this one runs the two hostile suites twenty times
7+
# in a row, which is the same signal in a fraction of the wall clock.
8+
9+
on:
10+
push:
11+
branches: [ "tooling/hostile-hunt" ]
12+
workflow_dispatch:
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
hunt:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
22+
with:
23+
submodules: recursive
24+
25+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020
26+
with:
27+
node-version: 24
28+
29+
- uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6
30+
with:
31+
key: "test"
32+
33+
- name: Install build deps
34+
run: |
35+
sudo apt-get install openssh-client expect
36+
cargo install --locked just@1.4.0
37+
38+
- name: Build UI
39+
run: |
40+
just npm ci
41+
just openapi
42+
just npm run openapi:tests-sdk
43+
just npm run build
44+
45+
- name: Build the gateway
46+
run: cargo build --bin warpgate
47+
48+
- name: Build images
49+
working-directory: tests
50+
run: make all
51+
52+
- name: Install deps
53+
working-directory: tests
54+
run: |
55+
pip3 install poetry==1.8.3
56+
poetry install
57+
58+
- name: Hunt
59+
working-directory: tests
60+
run: |
61+
for i in $(seq 1 20); do
62+
echo "::group::iteration $i"
63+
TIMEOUT=120 poetry run pytest \
64+
test_vault_hostile_target.py test_vault_hostile_certs.py \
65+
-q --tb=short -p no:randomly || { echo "reproduced on iteration $i"; exit 1; }
66+
echo "::endgroup::"
67+
done
68+
echo "twenty iterations, no reproduction"

0 commit comments

Comments
 (0)