ci: drop the schedule triggers, race and fuzz run on dispatch alone
Test / test (push) Successful in 1m54s

Assisted-by: GLM 5.3
This commit is contained in:
2026-09-22 21:28:30 +02:00
parent b0f40739c7
commit eb6ac1ab9d
6 changed files with 17 additions and 25 deletions
+5 -9
View File
@@ -1,20 +1,16 @@
# Fuzz smoke, Go. A nightly time-boxed run of the fuzz targets, and a hand # Fuzz smoke, Go. Dispatched by hand when a change asks for it.
# dispatch when a change asks for it.
# #
# Fuzzing is exploration, so it never belongs to the push pipeline; a 30 second # Fuzzing is exploration, so it never belongs to the push pipeline; a 30 second
# smoke per target, run nightly, is the compromise that catches a new crash # smoke per target on a hand dispatch checks a change without holding the
# within a day without holding the shared box. The targets run the seeds and # shared box. The targets run the seeds and whatever the corpus has gathered; a
# whatever the corpus has gathered; a failure leaves its crashing input in # failure leaves its crashing input in testdata/fuzz, which the ordinary suite
# testdata/fuzz, which the ordinary suite then reproduces on every push. # then reproduces on every push.
# #
# Every step is one command, so the step that fails is the gate that failed. # Every step is one command, so the step that fails is the gate that failed.
name: Fuzz name: Fuzz
on: on:
workflow_dispatch: workflow_dispatch:
schedule:
# Nightly at 03:30 UTC, after the race sweep has had the box first.
- cron: "30 3 * * *"
env: env:
# One core: parallelism buys no speed here and costs memory the box does not have. # One core: parallelism buys no speed here and costs memory the box does not have.
+4 -8
View File
@@ -1,20 +1,16 @@
# Race, Go. Dispatched by hand and swept nightly on a schedule. # Race, Go. Dispatched by hand.
# #
# The race detector roughly doubles both time and memory, which the shared runner box # The race detector roughly doubles both time and memory, which the shared runner box
# cannot afford on every push. Locally it belongs to `just gates`, which runs it once # cannot afford on every push. Locally it belongs to `just gates`, which runs it once
# per task; here it is an explicit decision rather than a routine. The nightly # per task; here it is an explicit decision rather than a routine, a hand dispatch
# schedule runs on the repository's default branch, so it sweeps the released # when a change asks for one. Development carries its race gate on every push through
# line; development carries its race gate on every push through `just gates` # that local gate.
# and the hand dispatch when a change asks for one.
# #
# Every step is one command, so the step that fails is the gate that failed. # Every step is one command, so the step that fails is the gate that failed.
name: Race name: Race
on: on:
workflow_dispatch: workflow_dispatch:
schedule:
# Nightly at 03:00 UTC, the quietest hours of the shared box.
- cron: "0 3 * * *"
env: env:
# One core: parallelism buys no speed here and costs memory the box does not have. # One core: parallelism buys no speed here and costs memory the box does not have.
+2 -2
View File
@@ -2,8 +2,8 @@
# #
# The gates are the ones the justfile's `gates` recipe runs, minus race: the shared # The gates are the ones the justfile's `gates` recipe runs, minus race: the shared
# runner box cannot afford the race detector on every push. Race has its own # runner box cannot afford the race detector on every push. Race has its own
# pipeline, dispatched by hand and swept nightly, and the local `just gates` # pipeline, dispatched by hand, and the local `just gates` runs it once per
# runs it once per task. The box is one core and 2 GB beside Gitea, so # task. The box is one core and 2 GB beside Gitea, so
# parallelism is bounded on purpose and everything runs in one job. Extra jobs would # parallelism is bounded on purpose and everything runs in one job. Extra jobs would
# duplicate the checkout, the Go setup and the dependency download three times without # duplicate the checkout, the Go setup and the dependency download three times without
# buying any parallelism. # buying any parallelism.
+2 -2
View File
@@ -115,8 +115,8 @@ Workflows live in `.gitea/workflows/` and run on the project's own runners:
| Workflow | Trigger | What it does | | Workflow | Trigger | What it does |
|---|---|---| |---|---|---|
| Test | push or pull request to `development` | format check, vet, modernisation, build, the test suite with the coverage floor, the toml-test compliance suite | | Test | push or pull request to `development` | format check, vet, modernisation, build, the test suite with the coverage floor, the toml-test compliance suite |
| Race | `workflow_dispatch`, plus a nightly schedule | the suite under the race detector, the same race gate the local `just gates` runs | | Race | `workflow_dispatch`, by hand | the suite under the race detector, the same race gate the local `just gates` runs |
| Fuzz | `workflow_dispatch`, plus a nightly schedule | a 30 second fuzz smoke per target over the seeds and the gathered corpus | | Fuzz | `workflow_dispatch`, by hand | a 30 second fuzz smoke per target over the seeds and the gathered corpus |
| Release | a `v*` tag | tag validation, format, vet, modernisation, build and the test suite with the coverage floor, then the Gitea release created from the `CHANGELOG.md` section; no race detector | | Release | a `v*` tag | tag validation, format, vet, modernisation, build and the test suite with the coverage floor, then the Gitea release created from the `CHANGELOG.md` section; no race detector |
The local equivalent is `just gates`, which is the same set plus the race The local equivalent is `just gates`, which is the same set plus the race
+3 -3
View File
@@ -46,7 +46,7 @@ prints the same list.
| `just install` | builds, then copies the binary into `~/.local/bin` (`BINDIR` overrides) | | `just install` | builds, then copies the binary into `~/.local/bin` (`BINDIR` overrides) |
| `just uninstall` | removes the installed binary | | `just uninstall` | removes the installed binary |
| `just clean` | removes `bin/` and `coverage.out` | | `just clean` | removes `bin/` and `coverage.out` |
| `just cross` | cross-compile smoke of the library and the command for arm64, loong64, riscv64 and the browser and edge runtimes; nightly convenience, not a gate | | `just cross` | cross-compile smoke of the library and the command for arm64, loong64, riscv64 and the browser and edge runtimes; a hand-run convenience, not a gate |
| `just release-check X.Y.Z` | the release pre-flight: the branch, a clean tree, a sync with origin, the gates, and a CHANGELOG section ready to release | | `just release-check X.Y.Z` | the release pre-flight: the branch, a clean tree, a sync with origin, the gates, and a CHANGELOG section ready to release |
| `just docs-drift` | compares the toml-test counts the documentation quotes with a live suite run | | `just docs-drift` | compares the toml-test counts the documentation quotes with a live suite run |
@@ -101,8 +101,8 @@ pipeline.
| Workflow | Trigger | What it does | | Workflow | Trigger | What it does |
|---|---|---| |---|---|---|
| `test.yml` | push or pull request to `development` | format check, vet, modernisation, build, the test suite with the 80 percent coverage floor, then the toml-test compliance suite | | `test.yml` | push or pull request to `development` | format check, vet, modernisation, build, the test suite with the 80 percent coverage floor, then the toml-test compliance suite |
| `race.yml` | `workflow_dispatch`, plus a nightly schedule at 03:00 UTC | the suite under the race detector, the same race gate `just gates` runs locally; the nightly schedule runs on the default branch, the released line | | `race.yml` | `workflow_dispatch`, by hand | the suite under the race detector; the same race gate `just gates` runs locally |
| `fuzz.yml` | `workflow_dispatch`, plus a nightly schedule at 03:30 UTC | a 30 second fuzz smoke per target over the seeds and the gathered corpus | | `fuzz.yml` | `workflow_dispatch`, by hand | a 30 second fuzz smoke per target over the seeds and the gathered corpus |
| `release.yml` | a `v*` tag | tag validation, then format, vet, modernisation, build and the test suite with the coverage floor, then the Gitea release from the CHANGELOG section. No race detector: race never runs on a push path, and the local `just gates` raced the tree before the tag was cut | | `release.yml` | a `v*` tag | tag validation, then format, vet, modernisation, build and the test suite with the coverage floor, then the Gitea release from the CHANGELOG section. No race detector: race never runs on a push path, and the local `just gates` raced the tree before the tag was cut |
## Releases ## Releases
+1 -1
View File
@@ -100,7 +100,7 @@ toml-test: build
coverage-html: test coverage-html: test
go tool cover -html=coverage.out -o coverage.html go tool cover -html=coverage.out -o coverage.html
# Cross-compile smoke: the library and the command build for the foreign architectures and the browser and edge runtimes; not a gate, it is a nightly convenience and runs std-lib only. # Cross-compile smoke: the library and the command build for the foreign architectures and the browser and edge runtimes; not a gate, it is a hand-run convenience and runs std-lib only.
cross: cross:
GOARCH=arm64 go build ./... GOARCH=arm64 go build ./...
GOARCH=loong64 go build ./... GOARCH=loong64 go build ./...