GitHub Actions(GHA)를 사용하는 Rust 개발자들에게 희소식이 전해졌습니다. 컨테이너 레지스트리 'Clipper'의 개발자가 GHA 환경에서 Rust 프로젝트의 빌드 시간을 최대 7배까지 단축할 수 있는 증분 빌드 캐시 솔루션을 선보였습니다. 이는 임시(ephemeral) 실행 환경인 GHA에서 Rust의 증분 빌드(incremental build) 상태를 효율적으로 유지하는 새로운 방식으로, 개발 워크플로우의 생산성을 크게 향상시킬 잠재력을 가지고 있습니다.
이 솔루션은 Clipper의 지연 풀(lazy pull) 및 캐시 마운트 익스포트(cache mount export) 기능을 활용합니다. 특히 FUSE 마운트 파일 시스템을 통해 원격 콘텐츠 정의 스토어(content defined store)를 백엔드로 사용하며, `cargo target/` 디렉토리를 Clipper 볼륨으로 캐싱합니다. 이를 통해 변경된 부분만 다시 빌드하는 증분 컴파일이 가능해지며, 기존 `sccache`가 증분 컴파일 시 비활성화되는 문제를 해결합니다. 실제 테스트 결과, `sccache` 대비 30% 이상의 컴파일 시간 단축 효과를 보였고, 특정 프로젝트에서는 빌드 시간이 465초에서 309초로, 심지어 267초에서 72초로 대폭 줄어드는 등 최대 7배 빠른 성능을 입증했습니다.
이 기술은 Rust 개발 워크플로우에 상당한 변화를 가져올 것으로 예상됩니다. CI/CD 파이프라인에서 빌드 시간이 단축되면 개발 주기가 빨라지고, 더 잦은 테스트와 배포가 가능해져 전반적인 개발 생산성이 향상됩니다. 현재는 리눅스(Linux) 러너에서만 지원되지만, macOS 및 윈도우(Windows) 지원도 예정되어 있어 더 많은 개발자들이 혜택을 누릴 수 있을 것입니다. 다만, `-Z checksum-freshness` 기능을 사용하기 위해 나이틀리(nightly) Rust 툴체인이 필요하다는 점과 `sccache`와 동시에 사용할 수 없다는 점은 고려해야 할 부분입니다.