CI 및 릴리스
GitHub Actions를 통한 자동화된 CI 파이프라인, 수동 워크플로 실행, 크로스 플랫폼 릴리스 바이너리.
stepper 저장소는 지속적 통합, 수동 워크플로 실행, 자동화된 릴리스 배포에 GitHub Actions를 사용합니다. 세 개의 워크플로가 여러 플랫폼에서 빌드, 테스트, 바이너리 게시를 담당합니다.
ci.yml — push 시 빌드 및 테스트
코드베이스를 검증하기 위해 모든 push와 pull request에서 실행됩니다. 이 워크플로는 다음 품질 게이트를 수행합니다:
build—cargo build --workspace로 워크스페이스를 컴파일합니다clippy -D warnings— 경고를 오류로 취급하는 모드로 clippy 린터를 실행하여 코드 품질을 강제합니다test—cargo test --workspace를 실행합니다(#[ignore]로 표시되었거나 환경에 의해 게이트되는 라이브 테스트는 건너뜁니다)install—scripts/install.sh를 실행하여 설치 스크립트가 정상 동작하는지 검증하는 스모크 테스트입니다
run.yml — 수동 헤드리스 실행
온디맨드 테스트 실행을 위해 workflow_dispatch로 트리거되는 수동 워크플로입니다. 이 워크플로는 stepper를 빌드 및 설치한 뒤, 사용자가 제공한 입력으로 헤드리스 실행합니다.
- 세 가지 워크플로 입력을 받습니다:
prompt(헤드리스 프롬프트),model(사용할 모델 ID),mode(권한 모드) - 프로바이더 인증을 위해
STEPPER_<PROVIDER>_API_KEY형식의 저장소 시크릿을 사용합니다(예:STEPPER_ANTHROPIC_API_KEY)
release.yml — 크로스 플랫폼 게시
prod 브랜치로의 push 또는 수동 워크플로 dispatch로 트리거됩니다. 이 워크플로는 품질 검사 통과를 게이트로 삼아 최적화된 릴리스 바이너리를 빌드하고 GitHub Release에 게시합니다.
품질 게이트
build—cargo build --workspace로 컴파일합니다clippy -D warnings— 경고 0개를 강제합니다test— 전체 테스트 스위트를 실행합니다
릴리스 아티팩트
이 워크플로는 세 가지 타깃 플랫폼용 바이너리를 빌드하고 게시합니다:
- macOS arm64 (Apple Silicon)
- Linux x86_64
- Windows x86_64
각 타깃에 대해 버전이 포함된 아카이브와 버전이 없는 아카이브를 모두 게시합니다:
- 버전 포함:
stepper-<version>-<target>.tar.gz또는.zip(이름에 버전 포함) - 버전 없음:
stepper-<target>.tar.gz또는.zip(정적 호스팅을 위한 안정적인 URL)
아카이브는 v<version> 태그가 붙은 GitHub Release에 게시되며, 버전은 Cargo.toml의 워크스페이스 버전에서 읽어옵니다. 새 릴리스를 만들려면 Cargo.toml의 버전을 올리면 됩니다. 동일한 버전을 다시 push하면 릴리스 에셋이 업데이트됩니다.
배포
저장소가 공개되어 있으므로 최종 사용자는 최신 GitHub 릴리스에서 바이너리를 직접 다운로드합니다. §1에서 언급된 설치 스크립트(별도의 stepper.gumyo.net 사이트에 호스팅됨)는 releases/latest/download에서 플랫폼별 아카이브를 가져와 압축을 해제하고 stepper 바이너리를 ~/.local/bin에 설치합니다.