Rails 8.1의 로컬 CI는 config/ci.rb 파일에 정의된 CI 스크립트를 bin/ci 명령으로 실행합니다. 이 스크립트는 애플리케이션의 bin 디렉토리에 있는 다른 스크립트들을 호출하여 다양한 CI 단계를 수행합니다.
로컬 CI의 핵심 기능
- 스크립트 정의:
config/ci.rb파일에 CI 스크립트가 정의되며, 사용자 정의가 가능합니다. - 실행 명령:
bin/ci명령으로 모든 CI 단계를 순차적으로 수행합니다. - 기본 단계: 개발 환경 설정(
bin/setup), Rubocop 코드 검사(bin/rubocop), Bundler Audit(bin/bundler-audit), Import Map Audit(bin/importmap-audit), 애플리케이션 테스트(bin/test) 등이 포함됩니다. 이 스크립트들은bin디렉토리에서 직접 확인하고 수정할 수 있습니다.
CI 실행 및 GitHub 연동
- 실행 예시: 초기 Import Map Audit 실패 후, 코드 수정 및 재실행을 통해 모든 CI 단계를 성공적으로 완료하는 과정을 시연합니다. 로컬 CI는 클라우드 CI보다 훨씬 빠른 시간 내에 완료될 수 있습니다.
- GitHub Sign-off: GitHub CLI와 Basecamp의
gh-signoff확장 기능 설치를 통해 로컬 CI 결과를 GitHub Pull Request에 자동으로 반영할 수 있습니다. *config/ci.rb에서 sign-off 기능을 활성화합니다. * 변경사항을 커밋하고 GitHub에 푸시해야 기능이 정상 작동합니다. *bin/ci실행 후 CI가 성공하면, GitHub PR에 ‘Signed off’ 상태와 함께 ‘all systems go’ 메시지가 자동으로 추가됩니다. * 이를 통해 클라우드 CI 대기 없이 PR의 머지 가능 여부를 즉시 확인할 수 있어 개발 워크플로우가 간소화됩니다.