feat: source build system, CI pipeline, Containerfile#22
Closed
BcKmini wants to merge 1 commit into
Closed
Conversation
- install.sh: full rewrite with step-by-step colored UI, source build, prereq checks, --update flag, auto-clone, troubleshooting guide - scripts/dogfood-build.sh: provenance-checked build with GIT_SHA injection - scripts/validate-agents.sh: lint agent MD files - scripts/fmt.sh: unified Rust + Python formatter - .github/workflows/ci.yml: PR gate with fmt, clippy, test, Windows smoke - Containerfile: Docker/Podman image for reproducible source builds - Makefile: dogfood, container, validate, fmt-check targets Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthrough
Changes소스 빌드 및 CI 파이프라인 구축
Sequence Diagram(s)sequenceDiagram
participant User as 사용자
participant InstallSH as install.sh
participant Git as git clone/pull
participant Cargo as cargo build
participant FS as 파일시스템
User->>InstallSH: bash install.sh [옵션]
InstallSH->>InstallSH: OS 감지 및 전제조건 검사
InstallSH->>Git: 로컬 리포 없으면 clone / --update면 pull
Git-->>InstallSH: REPO_DIR 확정
InstallSH->>Cargo: cargo build --workspace
Cargo-->>InstallSH: target/<profile>/claude-tools
InstallSH->>FS: claude-tools → BIN_DIR 복사
InstallSH->>FS: agents/*.md, commands/*.md, tools/*.py 복사
InstallSH->>InstallSH: 에이전트 존재 검증 + claude-tools --version
InstallSH-->>User: 완료 메시지 + PATH 미포함 경고
sequenceDiagram
participant Push as git push
participant CI as GitHub Actions
participant DogfoodSH as dogfood-build.sh
participant Binary as claude-tools binary
participant ValidateSH as validate-agents.sh
Push->>CI: 워크플로 트리거
CI->>CI: validate-agents / fmt / clippy / test (병렬)
CI->>DogfoodSH: dogfood 잡 실행 (fmt+clippy+test 완료 후)
DogfoodSH->>Binary: cargo build + GIT_SHA 주입
Binary-->>DogfoodSH: sha:<SHA> 보고
DogfoodSH->>DogfoodSH: HEAD SHA와 비교 검증
DogfoodSH->>ValidateSH: validate-agents.sh (빌드 산출물 기준)
ValidateSH-->>CI: 검증 결과
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces binary-download install with a local source build, adds a full CI quality gate, and introduces a
scripts/utility folder.install.shrewritten: 7-step colored progress UI, builds binary fromrust/viacargo build --workspace, auto-clone when run via curl,--updateflag, prerequisite checks, built-in troubleshooting guidescripts/dogfood-build.sh: build with GIT_SHA provenance verification — fails loudly with full output if SHA mismatchesscripts/validate-agents.sh: lint all agent MD files (non-empty, required sections, no duplicate IDs)scripts/fmt.sh: unifiedcargo fmt+ruff formatrunner with--checkmode for CI.github/workflows/ci.yml: PR gate — validate-agents → fmt → clippy → test → Windows smoke → dogfood build (Swatinem/rust-cache+cancel-in-progress)Containerfile: Docker/Podman image for reproducible builds (rust:bookwormbase)Makefile:dogfood,container,validate,fmt-checktargetsCloses #21
Test plan
bash install.sh --no-binarycompletes without error on macOS/Linuxbash scripts/validate-agents.shpasses for all existing agentsbash scripts/fmt.sh --checkexits 0 (skips gracefully when no Rust workspace yet)feat/**and all jobs passmake dogfoodworks once arust/workspace is present🤖 Generated with Claude Code
Summary by CodeRabbit
릴리스 노트
새로운 기능
개선
Chores