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
+4 -19
View File
@@ -12,32 +12,17 @@ jobs:
- id: set_2
run: |
echo "::set-output name=var_3::$(echo var3)"
- id: set_3
run: |
echo "::set-output name=var_4::$(echo var4)"
outputs:
variable_1: ${{ steps.set_1.outputs.var_1 }}
variable_2: ${{ steps.set_1.outputs.var_2 }}
variable_3: ${{ steps.set_2.outputs.var_3 }}
variable_4: ${{ steps.set_3.outputs.var_4 }}
build:
needs: build_output
runs-on: ubuntu-latest
steps:
- name: Check set_1 var1
- name: Check outputs
run: |
echo "${{ needs.build_output.outputs.variable_1 }}"
echo "${{ needs.build_output.outputs.variable_1 }}" | grep 'var1' || exit 1
- name: Check set_1 var2
run: |
echo "${{ needs.build_output.outputs.variable_2 }}"
echo "${{ needs.build_output.outputs.variable_2 }}" | grep 'var2' || exit 1
- name: Check set_2 var3
run: |
echo "${{ needs.build_output.outputs.variable_3 }}"
echo "${{ needs.build_output.outputs.variable_3 }}" | grep 'var3' || exit 1
- name: Check set_3 var4
run: |
echo "${{ needs.build_output.outputs.variable_4 }}"
echo "${{ needs.build_output.outputs.variable_4 }}" | grep 'var4' || exit 1
test "${{ needs.build_output.outputs.variable_1 }}" = var1
test "${{ needs.build_output.outputs.variable_2 }}" = var2
test "${{ needs.build_output.outputs.variable_3 }}" = var3