Remove redundant CI documentation and example checks

This commit is contained in:
2026-09-28 01:51:50 +00:00
parent ce91f04974
commit 77201baddf
4 changed files with 49 additions and 20 deletions

View File

@@ -25,16 +25,9 @@ steps:
commands:
- go build ./...
documentation-and-examples:
image: golang:1.26
depends_on: tests
commands:
- go test ./internal/doccheck
- go test ./internal/config -run '^TestExamplesLoadAndValidate$'
cross-build:
image: golang:1.26
depends_on: [race-tests, static-analysis, build, documentation-and-examples]
depends_on: [race-tests, static-analysis, build]
commands:
- |
set -eu

View File

@@ -56,7 +56,7 @@ Maintained development and verification require Go 1.26. Use the official Go
| Adapters or external tool contracts | [Adapter Internals](internal/adapters.md) and [Integration Contracts](integrations/README.md) | The internal guide owns adapter composition and mechanics; integration documents own external formats and protocols. |
| Manifests, artifacts, workspace paths, or publish behavior | [Manifest Internals](internal/manifest.md), [Artifact Internals](internal/artifacts.md), [Workspace Internals](internal/workspace.md), [Publish Internals](internal/stage-publish.md), and [Operations](operations.md) | These separate implementation state and resolution from operator-visible layout and lifecycle. |
| Maintained configuration or input examples | [Configuration](config.md) and [Examples](../examples/README.md) | The reference owns field meanings; the examples directory owns complete copyable files. |
| Preparing, validating, or publishing a release | [Release Policy](policy/release.md) and [Release Procedure](release.md) | Policy owns requirements and exceptions; the procedure owns concrete validation, guarded publication, and optional later inspection. |
| Preparing, validating, or publishing a release | [Release Policy](policy/release.md) and [Release Procedure](release.md) | Policy owns requirements; the procedure owns concrete validation, guarded publication, and optional later inspection. |
| Proposed or unimplemented behavior | `docs/roadmap/` | Future work belongs only in roadmap documentation until implemented. |
For an existing subsystem, also inspect its focused tests and package-level
@@ -64,24 +64,25 @@ contracts before changing behavior.
## Validation
Use focused package tests while iterating. Every pull request and push runs the
following repository-wide checks before it can be accepted:
Use focused package tests while iterating. Push and pull-request CI runs these
repository-wide checks and cross-builds the declared targets:
```sh
go test ./...
go test -race ./...
go vet ./...
go build ./...
go test ./internal/doccheck
go test ./internal/config -run '^TestExamplesLoadAndValidate$'
```
The documentation check verifies local Markdown links and the dependency graph
of the Woodpecker workflows. The configuration check loads every maintained
pipeline and session example. Tag CI independently revalidates the tagged source
before asynchronous asset delivery; it is not a second synchronous release
prerequisite. The normal maintainer entry point is the single publication command
in the [Release Procedure](release.md).
The full suite includes documentation-link and Woodpecker dependency checks
and loads maintained pipeline and session examples. For focused diagnosis,
run `go test ./internal/doccheck` or
`go test ./internal/config -run '^TestExamplesLoadAndValidate$'` directly;
these are available developer tools, not additional CI steps. Tag CI
independently revalidates the tagged source before asynchronous asset delivery;
it is not a second synchronous release prerequisite. The normal maintainer
entry point is the single publication command in the
[Release Procedure](release.md).
Woodpecker also runs `go test -race -shuffle=on -count=3 ./...` on its scheduled
job to expose ordering and repeatability defects. Current runners cross-compile

View File

@@ -310,7 +310,15 @@ unchanged. Adopt metadata only for the actual document revision incorporated.
## Stage 6: Align CI and contributor validation references
Status: Pending.
Status: Complete (2026-09-28).
Verification: Removed only the redundant push/PR documentation-and-examples
job, with cross-build dependencies repaired. The full suite still exercises
both checks, while focused commands remain documented for developer diagnosis.
Tag CI, scheduled shuffle/race testing, runner images, build targets, and
non-overwrite publication settings remain unchanged. `go test
./internal/doccheck ./internal/releasecheck` and `git diff --check` passed;
manual review found no CI wait or broad-ref publication path.
Read .woodpecker/verify.yml, .woodpecker/release.yml, .woodpecker/shuffle.yml,
the doccheck workflow graph tests, and docs/development.md.

View File

@@ -49,6 +49,33 @@ func TestWoodpeckerWorkflowDependencies(t *testing.T) {
}
}
func TestVerifyWorkflowUsesFullSuiteWithoutFocusedDuplicates(t *testing.T) {
path := filepath.Join(repositoryRoot(t), ".woodpecker", "verify.yml")
data, err := os.ReadFile(path)
if err != nil {
t.Fatal(err)
}
var workflow woodpeckerWorkflow
if err := yaml.Unmarshal(data, &workflow); err != nil {
t.Fatal(err)
}
tests, ok := workflow.Steps["tests"]
if !ok || !containsWorkflowCommand(tests.Commands, "go test ./...") {
t.Fatalf("verify workflow lacks the full default suite: %#v", tests)
}
for name, step := range workflow.Steps {
commands := strings.Join(step.Commands, "\n")
if strings.Contains(commands, "go test ./internal/doccheck") || strings.Contains(commands, "go test ./internal/config -run") {
t.Errorf("verify step %q repeats tests covered by the full suite", name)
}
}
for _, dependency := range []string{"race-tests", "static-analysis", "build"} {
if !workflowDependsOn(workflow.Steps, "cross-build", dependency, map[string]bool{}) {
t.Errorf("cross-build does not depend on %q", dependency)
}
}
}
func TestReleaseWorkflowRequiresValidation(t *testing.T) {
root := repositoryRoot(t)
path := filepath.Join(root, ".woodpecker", "release.yml")