Skip to content

Quality Gates

Ironloom preserves strict validation through Cargo formatting, Clippy, tests, dependency policy, vulnerability audit, schemas, documentation build, Docker build, Helm render, and SonarCloud analysis.

Local Gates

sh
cargo fmt --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
cargo run -p ironloom-schemas -- --check
cargo deny check
cargo audit
just scripts-test
npm run docs:build
helm lint deploy/helm/ironloom
helm template ironloom deploy/helm/ironloom

Recipe Shortcuts

  • just proof builds the runtime image, starts the local container, submits setup values, and generates a complete proof app.
  • just k3s-acceptance starts a disposable k3s container, installs the Helm chart, verifies signed Discord intake, and proves the PVC-backed artifact index survives a pod restart.
  • just discord-endpoint-acceptance uses a real Discord application to validate a public Interactions Endpoint URL through Discord's signed validation PING.
  • just external-probe uses real bound runtime credentials to read GitHub source-of-truth repository state and poll SonarCloud quality and issue state.
  • just gates runs the common local gates for format, Clippy, tests, schemas, SonarCloud bootstrap script behavior, docs, Helm, dependency policy, and vulnerability audit.
  • just setup-url prints the local setup URL and installer token for manual browser validation.

Publishing Gates

  • Docker Buildx builds docker/ironloom-runtime/Dockerfile.
  • Helm publishes deploy/helm/ironloom as an OCI chart.
  • GitHub Pages publishes the VitePress public site.
  • SonarCloud receives Rust LCOV coverage from cargo llvm-cov and a generated Clippy JSON report from the same lint command enforced by CI.
  • Docs-site files are analyzed by SonarCloud but excluded from coverage accounting so Rust LCOV remains the quality gate signal.
  • After the SonarCloud scan, CI waits for the scanner compute-engine task and prints the authenticated quality gate status and each condition to the workflow log.
  • CI verifies the vannadii_ironloom SonarCloud project before scanning, creates it when SonarCloud returns 404, and aligns the SonarCloud main branch with the GitHub default branch. If a stale non-main branch with the target name already exists, CI deletes that branch before renaming the SonarCloud main branch and verifies the result.
  • If SonarCloud returns NONE because no project quality gate is associated, CI enforces the organization default gate against authenticated project measures and fails closed on missing or violating measures.
  • The runtime external probe uses the same organization default gate fallback when SonarCloud returns NONE, so live probes report passed or failed instead of leaving the quality gate pending.
  • The SONAR_TOKEN secret must be able to create/read the project, manage the main branch, submit analysis, read the quality gate, read organization quality gates, and read project measures; it does not need permission to modify quality gates.

Contributors

The avatar of contributor named as Vanna DiCatania Vanna DiCatania

Changelog

Auditable engineering operations for Discord, GitHub, SonarCloud, and k3s.