
깃허브 액션 워크플로를 로컬에서 실행하는 개발도구 Preloop가 지난 10일 0.34 버전을 공개했다. 프로젝트 공식 릴리스에 따르면 이번 버전에는 데이터베이스 중심의 작업 상태 관리와 깃허브 환경 보호 규칙 연동이 포함됐다.
Preloop는 저장소의 .github/workflows 파일을 받아 작업별 마이크로VM에서 CI를 실행하는 도구다. 공식 문서는 커밋하지 않은 로컬 변경 사항도 검사할 수 있다고 설명한다. 깃허브 액션 러너 프로토콜을 구현해 공식 러너를 연결하거나 프로젝트가 제공하는 러스트 기반 러너를 사용하는 구조다.
이번 변경의 한 축은 작업 스케줄링의 기준을 메모리 상태에서 데이터베이스로 옮긴 제어부다. 개발팀이 병합한 변경 원문에는 SQLite와 PostgreSQL 구현이 명시돼 있다. 작업 배정과 승인 대기 같은 상태를 관리하는 기반을 다시 구성한 것이다.
배포 환경 보호 기능은 깃허브에서 설정한 브랜치 제한, 대기 시간, 필수 검토자 규칙을 작업 실행에 연동한다. 규칙 조회가 일시적으로 실패하면 작업을 진행하지 않는 방식도 명시됐다. 자체 실행 환경에서도 배포 전 승인 조건을 확인하도록 한 변화다.
로컬 디버깅 기능도 이 도구의 특징이다. 공식 문서는 실패한 작업 단계에서 실행을 멈춘 뒤 소스 변경을 반영하고 같은 마이크로VM에서 해당 단계를 다시 실행하는 절차를 설명한다. DAP(Debug Adapter Protocol)를 통해 실행 중인 작업 맥락을 살펴보는 기능도 제공한다. 다만 단계 재시도가 이미 발생한 외부 API 호출이나 작업 디렉터리 밖의 변경까지 되돌리는 것은 아니다.
지원 범위에는 제약이 있다. 공식 README는 애플 실리콘에서 x86_64 이미지를 Rosetta 2로 실행하는 경로의 Docker 액션이 아직 지원되지 않는다고 안내한다. 제어부를 포함한 프로젝트 전체를 MIT 라이선스의 오픈소스로 보는 것도 정확하지 않다. CLI와 러너 등은 MIT지만, 제어부는 경쟁 용도의 상용 제공을 제한하는 FSL-1.1-MIT를 적용하며 각 버전 공개 2년 뒤 MIT로 전환된다.
깃허브에 코드를 올리고 원격 CI 결과를 기다리는 과정을 로컬로 가져온다는 점이 Preloop의 활용 지점이다. 도입할 때는 기존 워크플로와의 호환 범위, 배포 승인 규칙, 라이선스 조건을 함께 살펴야 한다.
출처: Preloop v0.34.0 공식 릴리스 https://github.com/preloopdev/preloop/releases/tag/v0.34.0
Preloop v0.34.0 공식 README https://github.com/preloopdev/preloop/blob/v0.34.0/README.md
Preloop 작업 상태 관리 변경 원문 https://github.com/preloopdev/preloop/pull/347
Preloop 깃허브 환경 보호 규칙 변경 원문 https://github.com/preloopdev/preloop/pull/367
Preloop 공식 디버깅 문서 https://github.com/preloopdev/preloop/blob/v0.34.0/docs/debug-sessions.md
Preloop 제어부 라이선스 https://github.com/preloopdev/preloop/blob/v0.34.0/crates/preloop-runner-server/LICENSE