SonarQube 및 Codefresh를 사용한 연속 코드 분석

SonarQube는 통용되는 코드 분석 도구로 코드에 대한 지속적인 검사를 제공하여 기존과 새로 도입된 문제를 돋보이게 한다.이것은 새로 작성한 코드 중 가장 높은 코드 품질을 얻기 위해 코드를 작성할 때 청소를 할 수 있도록 합니다.
이 기사는 다음과 같습니다.
  • SonarQube 개요 및 로컬 사용 방법
  • Codefresh 파이프
  • 소개
  • 마지막으로 Codefresh에서 SonarQube와 저희 SonarQube 플러그인
  • 을 직접 통합하는 방법을 보여 드리겠습니다.

    SonarQube 개요


    SonarQube 아키텍처는 서버와 SonarScanner로 구성됩니다.Scanner는 SonarQube와 관련된 항목을 분석하는 데 사용되는 독립된 클라이언트 유형 응용 프로그램입니다.스캐너는 일반적으로 CI/CD 파이프에 포함됩니다.
    SonarQube를 로컬에서 사용하고 싶다면 two different ways to install it;zip 파일 또는 Docker Hub의 Docker 공식 이미지를 사용합니다.로컬 버전은 개발 과정에서 코드를 스캔하는 데 사용할 수 있습니다.또는 SonarCloud를 사용하면 코드가 원격git 저장소로 전송되면 온라인 UI에 접근할 수 있습니다.수나운은 테스트 목적에 무료로 사용할 수 있다.
    SonarQube를 로컬로 설치하려면 Docker installed가 필요합니다.그러면 SonarQube의 공식 Docker 이미지를 추출할 수 있습니다.
    docker pull Sonaqube
    그런 다음 이미지를 실행하여 UI에 로컬로 액세스할 수 있습니다.
    docker run-d-- 이름sonarqube-e SONAR ES BOOTSTRAP CHECKS DISABLE=true-p 9000:9000 sonarqube: 최신
    현재localhost:9000에서SonarQube에 접근할 수 있습니다.시스템 관리자 자격 증명(login=admin,password=admin)을 사용하여 로그인 서비스를 사용합니다.

    SonarQube를 더욱 고급스럽게 사용하려면 설치server를 권장합니다.이 경우 다음을 사용합니다.
  • SonarQube 서버에서 다음 프로세스를 실행합니다.
  • SonarQube 사용자 인터페이스에 서비스를 제공하는 웹 서버.
  • Elasticsearch 기반 검색 서버.
  • 코드 분석 보고서를 처리하고 SonarQube 데이터베이스에 저장하는 계산 엔진을 담당한다.
  • 다음을 저장하는 데이터베이스:
  • 코드 스캔 기간에 생성된 코드의 질과 안전성 지표와 문제점.
  • SonarQube 인스턴스 구성
  • 코드를 분석할 때 따르는 과정은 응용 프로그램이 사용하는 프로그래밍 언어에 고도로 의존한다.SonarQube는 주로 자바 파일을 분석하는 데 사용되지만 27가지 다른 언어를 분석할 수 있다.SonarQube는 오류, 취약점, 코드 냄새, 덮어쓰기 범위 또는 반복을 보고합니다.그 밖에 코드의 복잡성과 같은 더 많은 계산advanced metrics도 한다.각 범주에 대해 사용자 인터페이스에는 해당 범주에서 감지된 문제의 수와 백분율이 표시됩니다.
    계속해서 following project 의 코드를 스캔합시다.a language that is supported by SonarQube 로 작성된 항목만 사용하면 후속 작업을 할 수 있습니다.
  • 새 항목 만들기 버튼을 클릭합니다.
  • 프로젝트를 작성하는 방법에 대한 질문에 수동으로 선택합니다.
  • 항목에 대한 항목 키와 표시 이름을 제공하고 설정 단추를 누릅니다.
  • 영패 제공에서 영패 생성을 선택합니다.토큰의 이름을 지정하려면 Generate 버튼을 클릭하고 Continue를 클릭합니다.
  • 프로젝트 운영 분석에서 프로젝트의 주요 언어를 선택하고 설명에 따라 프로젝트를 분석한다.여기서 코드를 다운로드하고 스캐너를 실행합니다. (마븐이나Gradle을 사용하면 스캐너가 자동으로 다운로드됩니다.)
  • 이제 Sonar Scanner를 경로에 추가하고 항목을 검색하려면 다음을 수행해야 합니다.
  • 작업 디렉터리
  • 의 zip 파일 추출
  • 다음 파일 "working directory/sonar-scanner-cli-4.5.0.2216-linux/sonar-scanner-4.5.0.2216-linux/conf"에 액세스하여 다음 줄을 주석하지 않도록 편집합니다.
    #-----기본 SonarQube 서버
    음향 수신기.사회자사이트 주소 =http://localhost:9000
  • 파일 저장 및 닫기
  • 음향 스캐너/bin 디렉터리에서 경로로
    export PATH=“sonar-scanner-4.5.0.2216-linux/bin:$PATH”
    우리의 예에서 폴더sonar-scanner-4.5.0.2216-linux/bin은 우리가 명령을 실행하는 디렉터리에 있습니다.우리가 사용하는 것은 Ubuntu 20.04입니다.다른 운영 체제에 있는 경우 이 명령은 다릅니다.
  • 실행을 통해:sonar scanner-h
  • 경로가 올바르게 추가되었는지 확인
  • 이제 5단계 UI에서 제공하는 명령을 사용하여 프로젝트를 검색할 수 있습니다
  • .
    사운드 스캐너
    - 데소나.ProjectKey=go 테스트 응용 프로그램\
    - 데소나.소스 =/간단한 시작\
    - 데소나.사회자사이트 주소 =http://localhost:9000\
    - 데소나.login = 4단계에서 생성된 토큰
    명령이 성공적으로 실행되면 UI 새로 고침을 계속합니다.이제 다음 출력을 볼 수 있습니다.

    이것은 가장 직접적인 시작과 운행 과정이 아닐 수도 있다.다음은 Codefresh의 사용자 정의 SonarQube 플러그인을 사용하는 간단한 옵션을 보여 드리겠습니다.

    Codefresh에서 SonarQube 사용


    Codefresh에서 SonarQube를 사용하려면 사용자 정의 설치가 필요하지 않습니다.대신 Codefresh SonarQube 플러그인을 사용하여 SonarQube를 파이프에 직접 통합할 수 있습니다.Codefresh 파이프는 일련의 단계로 구성됩니다.이 경우 SonarQube는 단계 중 하나가 됩니다.정부측SonarQube stepCodefresh plugin directory에서 찾을 수 있고 다른 몇 개가 있습니다.
    Codefresh 단계에서는 SonarQube 애플리케이션에 대한 액세스 토큰이 다시 필요합니다.본 예에서 우리는 SonarCloud을 사용할 것이다.
    To generate a token :
  • 사용자 > 내 계정으로 이동(오른쪽 상단)
  • 보안 버튼 선택
  • 당신의 기호화폐를 생성합니다 - 우리는 우리의 기호화폐를 "codefresh 기호화폐"라고 명명합니다.'
  • 다시 쉽게 방문할 수 있는 곳에 영패를 보관합니다.

  • 다음에 프로젝트에 sonar-project.properties 파일을 추가해야 합니다.현재 모든 환경 변수 automatically defined가 음향 스캐너에 있는 것은 아니다.따라서 우리는 반드시 음향 수신 프로젝트를 세워야 한다.루트 디렉토리의 속성 파일:
    터치 수신기 항목.등록 정보
    이 파일은 음향 수신기를 정의하는 데 사용됩니다.조직과 음향 수신기.projectKey
    # 지정된 SonarQube 인스턴스 중 고유해야 함
    음향 수신기.프로젝트 키=sonarqube 예
    #메커니즘 이름
    음향 수신기.조직 = anais codefresh
    이러한 값을 항목별 값으로 바꾸십시오.내 조직 아래의 클라우드 계정에서 조직 이름을 찾을 수 있습니다.
    지금부터 create a Codefresh account (만약 당신이 아직 없다면, 지금은 때가 되었다. 그것은 무료이다!).
    새 프로젝트를 만듭니다. 이 프로젝트에서 새 파이프를 만듭니다.파이프를 만든 후git 저장소에서 정확한 항목을 선택했는지 확인하십시오.우리는 예전과 같이 사용할 것이다the same app.기본 go 프로그램과 Dockerfile을 포함합니다.응용 프로그램을 사용하고 있는 경우 Dockerfile이 포함되어 있는지 확인합니다.

    "만들기"를 누르면 파이프의 작업 흐름으로 다시 지정됩니다.이것은 자동으로 생성된 코드fresh를 포함합니다.yml 파일, 파이프를 정의하는 데 사용합니다.이제 SonarQube 단계를 추가합니다.
    보기custom plug-in:
    소나쿠베:
    종류: 음향 스캐너 cli
    논거:
    사운드 수신 호스트 URL:'http://foo.acme:9000'
    SONAR 로그인:사용자 이름 또는 키
    SONAR 암호: 사용자 이름을 사용하는 경우 암호
    SONAR PROJECT BASE DIR: 분석 작업 디렉토리 설정
    SONAR 스캐너 CLI 버전: 최신
    Codefresh 파이핑을 수정하여 사용자 정의 단계를 포함합니다.
    소나쿠베:
    유형: 사운드 스캐너 cli
    스테이지:밀어내기
    논거:
    사운드 수신 호스트 URL:'https://sonarcloud.io/"# 호스트 URL로 교체
    SONAR 로그인: 액세스 토큰 삽입#액세스 토큰으로 교체
    SONAR PROJECT BASE DIR: "/codefresh/volume/sonarqube example"# 작업 디렉토리로 교체
    사운드 스캐너 CLI 버전: "최신"
    참조로 저장소의 codefresh.yml를 참조하십시오.
    추가되면 파이프를 저장하고 파이프를 실행합니다.그러면 다음과 같은 출력이 표시됩니다.

    그런 다음 클라우드에서 항목에 대한 분석을 볼 수 있습니다.

    taps에서 보고서의 다른 시각적 형식에 접근할 수 있음을 주의하십시오.플랫폼의 다른 부분은 더 많은 정보를 제공했다.자세한 내용은 SonarQube official documentation를 참조하십시오.

    요약


    축하합니다!SonarQube 절차를 Codefresh 파이프에 추가하면 파이프 구축마다 코드의 분석 보고서를 자동으로 받습니다.
    이 자습서에서는 다음과 같은 내용을 설명합니다.
    SonarQube 소개
  • SonarQube
  • 를 로컬에서 시험적으로 사용하는 방법
  • Codefresh 파이프에 절차를 추가하고 과정을 자동화함으로써 모든 것을 간단하게 한다
  • 이 강좌에 대한 당신의 애정도를 평론에서 우리에게 알려 주십시오.질문이 있으면 join our community chat로 전화하십시오. 저희는 기꺼이 당신의 회답을 받겠습니다.
    아직 Codefresh 계정이 없습니까?Create Your Free Account today !

    좋은 웹페이지 즐겨찾기