Proven by Intelligence
보이지 않는 안전을 인텔리전스로 증명하다.
기술 인사이트를 만나보세요.
이번 포스팅에서는 최근 다양한 고객사에서 CI 도구와 CodeSonar 연동에 대한 문의가 증가하고 있어 연동 방법에 대해 안내드리고자 합니다.
먼저, CI/CD에 대해서 간단하게 소개 드리면 CI/CD(Continuous Integration/Continuous Deployment)는 지속적인 통합, 지속적인 배포를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화할 수 있어 현대 소프트웨어 개발에 필수적인 요소로 자리 잡았습니다.
CI(지속적인 통합)은 개발자를 위한 자동화 프로세스라고 볼 수 있으며, 코드 변경 사항을 정기적으로 빌드 및 테스트하여 공유 리포지토리에 통합하는 것을 의미합니다.
이러한 CI 환경을 구축했을 시, 얻을 수 있는 이점은 잦은 빌드와 테스트를 통해 결함을 이른 시기에 발견할 수 있고 해당 이슈를 빠르게 개선하여 효율적인 개발을 진행할 수 있습니다.
따라서 본 블로그에서는 CI 도구 Jenkins와 정적분석 도구인 CodeSonar를 연동하여 정적분석 자동화 환경을 구축해 보도록 하겠습니다.
"
Jenkins Free-Style 방식을 활용한 CodeSonar 연동 방법
"
Jenkins Free-Style 방식에서는 build step만 추가하여 간단하게 CodeSonar 분석 자동화 환경을 구축할 수 있습니다.
먼저, Add build step에서 Execute Windows batch command를 선택하여 분석 명령어를 추가해 줍니다.
1. CodeSonar Launch Daemon 활성화
Launch Daemon 이란 서버 또는 빌드 프로세스 지시에 따라 CodeSonar 분석 작업을 시작하는 프로세스입니다.
분석 명령어를 작성하기 전, 아래의 command를 실행하여 프로세스를 활성화시켜 줍니다.
-------------------------------------------------------------------------------------------------------------------------------------------
"CodeSonar 설치경로\codesonar\bin"codesonar install-launchd 서버IP:서버Port
_
CodeSonar 설치경로 : CodeSonar가 설치된 경로
서버IP : CodeSonar 서버 IP
서버Port : CodeSonar 서버 Port
-------------------------------------------------------------------------------------------------------------------------------------------
Ex) "C:\Program Files\CodeSecure\CodeSonar8.1\codesonar\bin\"codesonar install-launchd 127.0.0.1:7340
2. CodeSonar 분석 명령어 실행
다음 Build Step에 아래의 CodeSonar 분석 명령어를 기재하여 빌드 및 분석을 진행할 수 있습니다.
-------------------------------------------------------------------------------------------------------------------------------------------
CodeSonar 설치경로 : CodeSonar가 설치된 경로
ProjectName : CodeSonar 분석 결과 페이지에 표시될 프로젝트 이름
서버IP : CodeSonar 서버 IP
서버Port : CodeSonar 서버 Port
build 명령어 : build 명령어 혹은 build 스크립트 실행
-------------------------------------------------------------------------------------------------------------------------------------------
Ex) "C:\Program Files\CodeSecure\CodeSonar8.1\codesonar\bin\"codesonar analyze Jenkins_Demo -foreground -clean 127.0.0.1:7340 g++ -v -o demo demo.cpp second.cpp

3. 분석 결과 확인
Jenkins 콘솔 로그에서 아래와 같이 Finished: SUCCESS 문구가 확인되었다면, CodeSonar 분석 결과 웹페이지를 통해 분석 결과를 확인할 수 있습니다.

<Jenkins 콘솔 로그>

<Jenkins에서 실행한 CodeSonar 분석 결과>
