ci: drop the schedule triggers, race and fuzz run on dispatch alone
Test / test (push) Successful in 1m54s
Test / test (push) Successful in 1m54s
Assisted-by: GLM 5.3
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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,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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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 ./...
|
||||||
|
|||||||
Reference in New Issue
Block a user