Files
dingtalk-workspace-cli/scripts
chichuan 3aa06e32fa ci: shard full-suite coverage and cache merge-base profile
The Coverage context was the PR critical path (~17 min end to end):
coverage-current re-ran the whole suite serially (-p 1, ~13 min) and
coverage-baseline re-ran it again at the merge-base (~13 min) although
that profile is a pure function of the base commit.

- coverage-current now owns only the scoped (standard-tier) profile;
  full-suite candidate profiles come from a 5-way shard matrix
  (app/cli/generators/helpers/remaining) that keeps -p 1 inside each
  shard on isolated runners. scripts/ci/test-packages.sh list-coverage
  defines the shards and verify proves the union equals the previous
  single-run package set exactly once.
- the aggregate Coverage job reassembles the disjoint shard profiles
  into coverage.txt before make coverage-gate, failing closed when a
  shard file is missing, so gate semantics (100% changed-code +
  scope-matched overall non-regression) are byte-compatible.
- coverage-baseline restores the merge-base full-suite profile from an
  exact-key cache (merge-base SHA + resolved Go version) written by the
  last green main push; any miss falls back to recomputing in the
  merge-base worktree. Exact key only - no prefix fallback, a near-miss
  profile would compare the candidate against the wrong commit.
- new contract tests pin the shard matrix, the assembly step, the
  exact-key cache pair, and the absence of restore-keys; the package
  plan test also covers the coverage shard partition.
2026-08-14 16:24:00 +08:00
..
2026-03-27 17:55:57 +08:00
2026-08-10 10:46:20 +08:00

Go Bootstrap Scripts

These repo-local entrypoints are the supported shell entrypoints for building, testing, packaging, and policy checks.

  • make build: build the dws CLI from cmd
  • make test: run every default package returned by go list ./...
  • make test-plan: verify every default Go package belongs to exactly one CI test shard
  • make lint: run the repository-wide format check, go vet, and required staticcheck
  • make format-check: check every tracked or non-ignored untracked repository Go source file with gofmt
  • make fmt: format every tracked or non-ignored untracked repository Go source file
  • make policy: reuse the current dws binary and run the complete policy suite (make build first)
  • make package: build all release artifacts locally
  • make release-pre VERSION=vX.Y.Z-beta.N: validate a prerelease (PUBLISH=1 pushes its tag)
  • make release-stable VERSION=vX.Y.Z FROM_BETA=vX.Y.Z-beta.N: validate a stable promotion (PUBLISH=1 pushes its tag)

Script groups:

  • Root installers: ./scripts/install.sh, ./scripts/install.ps1, ./scripts/install-skills.sh
  • Product convenience installers: ./scripts/install-devapp.sh, ./scripts/install-devapp.ps1, ./scripts/install-event.sh
  • CI package plan: ./scripts/ci/test-packages.sh
  • Dev helpers: ./scripts/dev/build.sh, ./scripts/dev/lint.sh, ./scripts/dev/ci-local.sh, ./scripts/dev/run-mock-e2e.sh, ./scripts/dev/coverage.sh
  • Policy checks: ./scripts/policy/check-generated-drift.sh, ./scripts/policy/check-command-surface.sh, ./scripts/policy/check-command-compatibility.sh --base-ref <main-ref> --stable-ref <latest-GA-tag> --candidate-ref <candidate-sha>, ./scripts/policy/check-schema-catalog.sh, ./scripts/policy/check-schema-binary.sh, ./scripts/policy/check-open-source-assets.sh
  • Policy runtime files: set DWS_POLICY_TMPDIR to override the default .worktrees/policy-tmp workspace
  • Release entrypoint and contract: ./scripts/release/release.sh, ./scripts/release/release-contract.sh; operator guide: docs/releasing.md
  • Release packaging helpers: ./scripts/release/post-goreleaser.sh, ./scripts/release/stage-npm-package.sh, ./scripts/release/pack-npm-package.sh, ./scripts/release/verify-delivered-stable.sh, ./scripts/release/verify-release-artifacts.sh, ./scripts/release/verify-github-release-assets.sh, ./scripts/release/verify-github-tag-authority.sh, ./scripts/release/verify-package-managers.sh, ./scripts/release/publish-homebrew-formula.sh