mirror of
https://gitea.com/gitea/runner.git
synced 2026-11-09 00:30:28 +00:00
test(e2e): speed up and cover exec and Kubernetes modes (#1363)
Follow-up to https://gitea.com/gitea/runner/pulls/1362, whose crash e2e missed because it only drove the daemon on Docker. - `dispatch`, `failure_paths` and `reusable_workflow` run through the daemon and `exec`, each on Docker and one shared k3s cluster. - Fixed sleeps become gates the test releases, the job timeout uses a 15s runner deadline, k3s boots alongside Gitea, Gitea's data is on tmpfs. - Outside a container, `make test-e2e` runs `go test` in a Linux container on its own network like CI, so local runs take the same paths. Local wall time: | | Before | After | |---|---|---| | Suite | 84s | 27–35s | | `job_timeout` | 64s | 17s | | `reconnect` | 22s | 4.5s | | `capacity/serial` | 20s | 2s | | `cli_shutdown_drains` | 14s | 2.3s | | `kubernetes` | 31s | 21–23s | _Written by Claude (Opus 5.5)._ --------- Co-authored-by: bircni <[email protected]> Reviewed-on: https://gitea.com/gitea/runner/pulls/1363 Reviewed-by: bircni <[email protected]> Co-authored-by: silverwind <[email protected]>
This commit is contained in:
1 parent
2e72cf902a
commit
a46d3f3eda
23 files changed
+577
-340
No files matched your search
@@ -33,6 +33,7 @@ type runnerOptions struct {
|
||||
host bool // register a host-mode label instead of a docker one
|
||||
name string // suffix that keeps runner names unique when a test starts several
|
||||
address string // Gitea address the runner talks to, default the fixture
|
||||
timeout time.Duration
|
||||
}
|
||||
|
||||
func startRunner(t *testing.T, repo, labelName string, options runnerOptions) *poll.Poller {
|
||||
@@ -60,9 +61,8 @@ func startRunner(t *testing.T, repo, labelName string, options runnerOptions) *p
|
||||
cfg.Runner.StateReportInterval = 500 * time.Millisecond // so cancel reaches the job quickly
|
||||
cfg.Runner.LogReportInterval = 500 * time.Millisecond
|
||||
cfg.Runner.Capacity = max(options.capacity, 1)
|
||||
if fixture.network != "" {
|
||||
cfg.Container.Network = fixture.network
|
||||
}
|
||||
cfg.Runner.Timeout = cmp.Or(options.timeout, cfg.Runner.Timeout)
|
||||
cfg.Container.Network = fixture.network
|
||||
|
||||
scheme := labels.SchemeDocker
|
||||
if options.kubernetes != nil {
|
||||
|
||||
Reference in new issue
Block a user