test: speed up tests (#1181)

Parallelize isolated workflow tests, consolidate redundant fixtures, and replace fixed waits with deterministic synchronization. Keep the readable curl service probe and use `getent` for hostname resolution.

Measured on the same machine with `make test`:

1. Wall time: 170.50s to 136.12s, down 34.38s or 20.2%.
1. `act/runner`: 138.417s to 124.291s, down 14.126s or 10.2%.
1. `act/runner` coverage: unchanged at 85.2%.
1. `TestDockerExecAbort`: 2.514s to 0.012s package time.

Stability checks:

1. Cancellation and deadline tests: 100 race-enabled repetitions.
1. Host runner suite: 10 race-enabled repetitions.
1. Changed Docker fixtures: 3 consecutive repetitions.

Full race suite, Go and Windows lint, source checks, and security scan pass.

Assisted-by: Codex:GPT-5
Reviewed-on: https://gitea.com/gitea/runner/pulls/1181
Reviewed-by: bircni <bircni@icloud.com>
Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
silverwind
2026-08-22 20:53:55 +00:00
committed by bircni
parent 546eca312e
commit b97c61aa14
17 changed files with 129 additions and 199 deletions
-14
View File
@@ -1,14 +0,0 @@
name: conclusion
on: push
jobs:
check:
runs-on: ubuntu-latest
steps:
- id: first
run: exit 0
- id: second
continue-on-error: true
run: exit 1
- run: echo '${{ steps.first.conclusion }}' | grep 'success'
- run: echo '${{ steps.second.conclusion }}' | grep 'success'
-14
View File
@@ -1,14 +0,0 @@
name: outcome
on: push
jobs:
check:
runs-on: ubuntu-latest
steps:
- id: first
run: exit 0
- id: second
continue-on-error: true
run: exit 1
- run: echo '${{ steps.first.outcome }}' | grep 'success'
- run: echo '${{ steps.second.outcome }}' | grep 'failure'
+17
View File
@@ -0,0 +1,17 @@
name: steps context
on: push
jobs:
check:
runs-on: ubuntu-latest
steps:
- id: first
run: exit 0
- id: second
continue-on-error: true
run: exit 1
- run: |
test '${{ steps.first.conclusion }}' = success
test '${{ steps.second.conclusion }}' = success
test '${{ steps.first.outcome }}' = success
test '${{ steps.second.outcome }}' = failure