피드로 돌아가기
Dev.toDevOps
원문 읽기
Jenkins 파이프라인에 Codacy를 통합해 49개 언어 지원 정적 분석, SAST 스캔, 시크릿 탐지, 커버리지 추적 자동화
How to Set Up Codacy with Jenkins for Automated Review
AI 요약
Context
Jenkins를 CI/CD 서버로 사용하는 팀은 빌드와 배포 파이프라인 자동화는 확보했으나 코드 품질 검증 프로세스가 분산되어 있었다. 커밋과 PR별로 일관된 수준의 정적 분석, 보안 스캔, 커버리지 검증이 이루어지지 않아 수동 리뷰에 의존했다.
Technical Solution
- Codacy 프로젝트 토큰 보안 저장: Jenkins 자격증명 저장소에 Codacy API 토큰을 Secret text 타입으로 등록해 Jenkinsfile에 노출되지 않도록 관리
- Jenkinsfile 기반 커버리지 리포터 통합: Codacy Coverage Reporter CLI 도구를 파이프라인 단계에서 다운로드하고 테스트 완료 후 실행해 LCOV, Cobertura XML, JaCoCo XML, Clover, OpenCover 형식의 커버리지 리포트 업로드
- 품질 게이트 체크 구성: 빌드 성공/실패 판정 기준을 Codacy에 설정해 정의된 코드 품질 기준을 충족하지 못하면 빌드 중단
- 멀티브랜치 파이프라인 지원: PR 기반 워크플로우에서 각 브랜치별 분석 결과를 독립적으로 추적하도록 설정
- Codacy Analysis CLI 로컬 실행 옵션: Jenkins 파이프라인 내에서 분석을 수행해 코드가 Codacy 클라우드로 전송되지 않도록 제어 가능
Key Takeaway
Jenkins 파이프라인에 코드 품질 검증 도구를 통합할 때는 자격증명 보안 저장부터 시작해 단계별 CLI 도구 통합으로 진행하는 것이 필수다. 멀티브랜치와 PR 워크플로우를 기본으로 설계하면 팀 전체가 동일한 분석 기준을 따를 수 있다.
실천 포인트
Java, JavaScript, Python을 사용하는 팀이 기존 Jenkins 파이프라인에 Codacy를 추가할 때, 프로젝트 API 토큰을 Jenkins 보안 저장소에 등록한 뒤 Jenkinsfile에서 withCredentials로 참조해 Coverage Reporter를 실행하면 테스트 결과와 함께 자동으로 커버리지 리포트를 Codacy에 전송할 수 있다.