Files
cc-ci/settings.toml.example
autonomic-bot cd19c1b172
Some checks failed
continuous-integration/drone/push Build is failing
feat(settings): server settings.toml loader + SKIP_CANONICALS_FOR_UPGRADE + release-tag-first no-canonical fallback
- harness/settings.py: stdlib tomllib loader, [upgrade].skip_canonicals_for_upgrade
  (bool, default false), _SCHEMA single-source defaults+validation; graceful on
  absent/malformed (WARN+defaults), warn-and-ignore unknown keys/tables, TypeError on
  wrong type. Path $CCCI_SETTINGS / /etc/cc-ci/settings.toml. + tracked settings.toml.example.
- resolve_upgrade_base: flag true bypasses the canonical lookup -> no-canonical fallback;
  canonical-present path (incl. samever step-back) unchanged when false.
- _no_canonical_base (always-on, §2.C): newest release tag < head (reuse
  warm_reconcile.newest_older_version) -> main-tip -> skip; replaces jump-to-main-tip.
- unit: full resolution matrix + loader tests; 315 unit pass, ruff clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 16:55:22 +00:00

24 lines
1.3 KiB
Plaintext

# cc-ci server settings (phase settings) — EXAMPLE / documentation.
#
# This is a minimal, extensible server-level config for the cc-ci CI host. Copy it to the live host
# path and edit as needed:
#
# cp settings.toml.example /etc/cc-ci/settings.toml # (or set $CCCI_SETTINGS to any path)
#
# The live file is OPERATOR-MANAGED and not committed (a per-server host override). Every key has a
# default baked into the loader (runner/harness/settings.py), so an ABSENT file — or an absent key —
# behaves exactly as the documented default. You only need a live file to CHANGE a default.
#
# NO SECRETS in this file — config only. Secrets stay in sops.
# Stdlib TOML (tomllib): booleans are `true`/`false` (lowercase, unquoted).
[upgrade]
# When true, the upgrade-tier BASE is resolved WITHOUT canonicals: the canonical (last-green warm)
# lookup is skipped entirely and the base falls through to the no-canonical fallback — the most recent
# release TAG on main older than the PR head, with the raw main-tip only as a further fallback, then
# skip. Codifies canonicals as an optional optimization (an operator switch); does NOT affect canonical
# promotion or the `--quick` warm-reattach (those are separate, out of scope here).
#
# Default: false (this server keeps canonicals on — the optimized/robust upgrade-base path).
skip_canonicals_for_upgrade = false