-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.kanon-ci.toml
More file actions
69 lines (60 loc) · 2.81 KB
/
.kanon-ci.toml
File metadata and controls
69 lines (60 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# archetype: B
# forge-only: false
# spdx: AGPL-3.0-or-later
# Forge CI pipeline for forkwright/aletheia.
#
# Mirrors harmonia's .kanon-ci.toml with aletheia-specific adjustments:
# feature flag (test-core) and longer timeouts for the larger workspace.
#
# Per-stage build concurrency is pinned below the host CPU count. Without this
# cap cargo defaults to num_cpus (64 on this Threadripper) and parallel rustc
# processes peak well over 100GB RSS, enough to OOM menos when any other fleet
# work is running.
#
# Check/clippy keep the 8-job cap. Nextest is pinned tighter
# (`--build-jobs 4 --test-threads 4`) because it can compile and run test
# binaries inside the same scope cgroup. The lower cap is meant to keep red
# main runs attributable to real compile/test failures instead of sccache
# disconnects or stage-level timeouts under fleet load.
#
# Keep in sync with:
# - crates/archeion/src/ci_config.rs::default_rust_gate (upstream default)
#
# NOTE: the duplicate in-repo basanos crate was removed in favor of kanon's
# canonical linter. The full `kanon lint --summary --rust` stage remains
# intentionally omitted because the workspace rust baseline still carries
# non-zero debt (~1500+ violations). Writing and workflow lint are now clean
# and enforced below. Per-crate rust lint gates should be added as individual
# crates reach zero violations (koina is closest). Whole-workspace rust lint
# can be re-added once the baseline is clean. Tracked in the phase plan at
# `<canonical-state-doc>/phases/aletheia-05e-forge-cutover.md`.
[pipeline]
stages = ["cargo fmt", "cargo check", "cargo clippy", "cargo nextest", "kanon lint writing", "kanon lint workflow", "dokimasia"]
[stages."cargo fmt"]
cmd = "cargo fmt --all -- --check"
timeout_secs = 300
[stages."cargo check"]
cmd = "cargo check --workspace --features test-core --all-targets --jobs 8"
timeout_secs = 1800
[stages."cargo clippy"]
cmd = "cargo clippy --workspace --features test-core --all-targets --jobs 8 -- -D warnings"
timeout_secs = 1800
[stages."cargo nextest"]
cmd = "cargo nextest run --workspace --features test-core --profile ci --build-jobs 4 --test-threads 4 --no-fail-fast"
timeout_secs = 2400
[stages."kanon lint writing"]
cmd = "kanon lint --summary --writing"
timeout_secs = 300
[stages."kanon lint workflow"]
cmd = "kanon lint --summary --workflow"
timeout_secs = 300
# Design-token enforcement: every var(--token) reference in CSS or Rust
# source must resolve to a declaration in DESIGN-TOKENS.md.
#
# Binary lives at /usr/local/bin/dokimasia (installed from
# forkwright/theatron). Updated via:
# cargo build --release -p dokimasia --manifest-path <theatron-repo>/Cargo.toml
# sudo install -m 755 <theatron-repo>/target/release/dokimasia /usr/local/bin/
[stages."dokimasia"]
cmd = "dokimasia --design-tokens ${DESIGN_TOKENS_PATH:?required} crates/"
timeout_secs = 60