Skip to content

R1-02: CI pipeline v1 - #3

Merged
aravgarg28 merged 1 commit into
mainfrom
task/R1-02-ci
Jul 25, 2026
Merged

R1-02: CI pipeline v1#3
aravgarg28 merged 1 commit into
mainfrom
task/R1-02-ci

Conversation

@aravgarg28

Copy link
Copy Markdown
Owner

R1-02: CI pipeline v1 — Completion Report

Status: complete
Branch/PR: task/R1-02-ci

What was built

.github/workflows/pr.yml — CI on every pull request and push to main (docs/build/CI_PLAN.md, R1-02 scope):

  • format job: clang-format pinned to 20.1.7 via pip so formatting is reproducible across machines rather than dependent on a contributor's local LLVM version. Verified locally that 20.1.7 and the 22.x used to format the tree agree byte-for-byte.
  • build matrix: linux {debug, asan-ubsan, release} + macOS debug, each configure/build/test through its preset with -Werror enabled (CI-only, per BUILD_SYSTEM.md).
  • Caching: ccache (also caches the gtest/benchmark compile) + FetchContent source cache keyed on cmake/deps.cmake; per-ref concurrency with cancel-in-progress.

tidy / deps / spec-coverage / python / bench-smoke jobs are intentionally absent until their subjects exist (R1-24, R2, R1-23), so CI never references tooling not yet in the tree.

README gains a developer section (build commands, canonical clang-format version, contributing workflow, recommended branch protection); BUILD_SYSTEM.md records the pinned clang-format version.

Acceptance criteria

  • pr.yml with format, linux-debug, linux-asan, linux-release, macos-debug — present
  • ccache + FetchContent caching — hendrikmuhs/ccache-action + actions/cache on deps
  • Branch-protection notes in a README dev section — added
  • Verify: green run on a PR — see CI status on this PR

Deviations / Questions

  1. clang-format pinned to 20.1.7 (not the local 22.x). Reason: reproducibility across machines; a pip-installed pinned version removes version-skew flakiness. Confirmed byte-identical output to 22.x on the current tree.
  2. stagecount preset not added (see R1-01 report) — it needs pipeline stage counters that first exist in R3.

Notes for reviewer

  • This is the workflow that gates every subsequent PR. Once merged to main, PRs R1-03: Core strong types #2 (R1-03) onward get automated checks.
  • No benchmark numbers are produced in CI (only build+test); authoritative measurement stays on the dev Mac per METHODOLOGY.md.

Adds .github/workflows/pr.yml running on every pull request and push
to main (docs/build/CI_PLAN.md scope for R1-02):

- format: pinned clang-format 20.1.7 via pip so formatting is
  reproducible across machines rather than dependent on a
  contributor's local LLVM version. Verified locally that 20.1.7 and
  the 22.x used to format the tree agree byte-for-byte.
- build matrix: linux {debug, asan-ubsan, release} + macos debug,
  each configure/build/test through its preset with -Werror enabled
  (CI-only, per BUILD_SYSTEM.md).
- ccache (also caches the gtest/benchmark compile) + FetchContent
  source caching keyed on cmake/deps.cmake; per-ref concurrency with
  cancel-in-progress.

tidy/deps/spec-coverage/python/bench-smoke jobs are intentionally
absent until their subjects exist (R1-24, R2, R1-23), so CI never
references tooling that is not yet in the tree.

README gains a developer section (build commands, canonical
clang-format version, contributing workflow, recommended branch
protection); BUILD_SYSTEM.md records the pinned clang-format version.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@aravgarg28
aravgarg28 merged commit 6939b32 into main Jul 25, 2026
5 checks passed
@aravgarg28
aravgarg28 deleted the task/R1-02-ci branch July 25, 2026 01:16
aravgarg28 added a commit that referenced this pull request Jul 27, 2026
Adds .github/workflows/pr.yml running on every pull request and push
to main (docs/build/CI_PLAN.md scope for R1-02):

- format: pinned clang-format 20.1.7 via pip so formatting is
  reproducible across machines rather than dependent on a
  contributor's local LLVM version. Verified locally that 20.1.7 and
  the 22.x used to format the tree agree byte-for-byte.
- build matrix: linux {debug, asan-ubsan, release} + macos debug,
  each configure/build/test through its preset with -Werror enabled
  (CI-only, per BUILD_SYSTEM.md).
- ccache (also caches the gtest/benchmark compile) + FetchContent
  source caching keyed on cmake/deps.cmake; per-ref concurrency with
  cancel-in-progress.

tidy/deps/spec-coverage/python/bench-smoke jobs are intentionally
absent until their subjects exist (R1-24, R2, R1-23), so CI never
references tooling that is not yet in the tree.

README gains a developer section (build commands, canonical
clang-format version, contributing workflow, recommended branch
protection); BUILD_SYSTEM.md records the pinned clang-format version.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant