Circleci에서 checkstyle과FindBugs 기반 코드 해석을 실행하고 Giithub에 대한 논평을 하는 방법

이 문장으로 설명하다


아무튼 그렇습니다.

코드 해석은 checkstyle과 Findbugs를 사용합니다.
또 Giithub에 대한 대량 경고 메시지를 방지하기 위해
마스터 지점에 비해 차이가 있는 파일만 경고합니다.

전제 조건

  • Giithub의 창고가 제작되었습니다.
  • 분석 대상 창고의 구축 스크립트를 만들었습니다(이 편에서ant를 사용합니다).
  • checkstyle의 설정 파일도 checkstyle.xml의 이름으로 창고에 추가되었습니다.
  • 절차.


    1. Gemfile 구성


    다음은 프로젝트의 최상위 디렉토리에 저장된 것입니다.
    Gemfile
    source 'https://rubygems.org'
    
    gem 'findbugs_translate_checkstyle_format', '>= 0.2.6'
    gem 'checkstyle_filter-git'
    gem 'saddler'
    gem 'saddler-reporter-github'
    

    2. 코드 해석을 실행하는 하우징 설명


    다음 셸을 항목의 맨 위 디렉토리에 저장합니다.
    run_static_analyzer.sh
    #!/bin/bash
    set -v
    
    # master ブランチを分析対象から除外する。
    DEFAULT_BRANCH="master"
    if [ "${CIRCLE_BRANCH}" !=  "${DEFAULT_BRANCH}" ]; then
    
        # .java ファイルに変更がなければ、動作を終了する。
        LIST=`git diff --name-only origin/${DEFAULT_BRANCH} | grep -e '.java$'`
        if [ -z "$LIST" ]; then
            echo "No java file has changed."
            exit 0
        fi
    
        # checkstyle による分析を実行する。(※)
        echo $LIST \
        | xargs java -Duser.language=ja -classpath $HOME/checkstyle/checkstyle-6.19-all.jar com.puppycrawl.tools.checkstyle.Main -c checkstyle.xml -f xml -o result.xml
    
        bundle exec checkstyle_filter-git diff origin/${DEFAULT_BRANCH} < result.xml \
        | bundle exec saddler report \
            --require saddler/reporter/github \
            --reporter Saddler::Reporter::Github::CommitReviewComment
    
        # Findbugs による分析を実行する。
        java -Duser.language=ja -jar $HOME/findbugs/lib/findbugs.jar -textui -sourcepath src/ -xml bin/ \
        | bundle exec findbugs_translate_checkstyle_format translate \
        | bundle exec checkstyle_filter-git diff origin/${DEFAULT_BRANCH} \
        | bundle exec saddler report \
            --require saddler/reporter/github \
            --reporter Saddler::Reporter::Github::CommitReviewComment
    fi
    exit 0
    
    http://qiita.com/kmotoki/items/3b819175860328a0374d

    3. circle.기술하다


    다음은 프로젝트의 최상위 디렉토리에 저장된 것입니다.
    circle.yml
    machine:
        timezone: Asia/Tokyo
        ruby:
            version: 2.2.0
        java:
            version: openjdk7
        environment:
            _JAVA_OPTIONS: "-Xms1024m -Xmx2048m"
    
    dependencies:
        override:
            - gem update bundler
            - gem install --no-document findbugs_translate_checkstyle_format checkstyle_filter-git saddler saddler-reporter-github
            - mkdir $HOME/checkstyle
            - curl -sL https://sourceforge.net/projects/checkstyle/files/checkstyle/6.19/checkstyle-6.19-bin.tar.gz | tar xz --strip=1 -C $HOME/checkstyle
            - mkdir $HOME/findbugs
            - curl -sL http://prdownloads.sourceforge.net/findbugs/findbugs-3.0.1.tar.gz | tar xz --strip=1 -C $HOME/findbugs
    
    compile:
        override:
            - ant -buildfile build.xml
    
    test:
        override:
            - ./run_static_analyzer.sh
    

    4. Giithub 액세스 토큰 만들기


    Giithub의 소개 페이지에서 "Edit profile"- "Personal access tokens"페이지로 이동합니다.
    오른쪽 위에 있는 "Generate new token"단추를 클릭합니다.

    "Select scopes"표시줄에서 "Repo"를 선택하고 맨 아래의 "Generate token"단추를 누르십시오.
    (Token description 막대를 임의로 입력)

    생성된 방문 영패를 표시하기 때문에 미리 기록합니다.
    또한 생성된 방문 영패의 값을 잠시 후에 확인할 수 없습니다.
    절대 잃지 마.

    5.CircleaCI에서 프로젝트를 만듭니다.


    왼쪽 메뉴의 Project 버튼을 클릭하고 오른쪽 위에 있는 Add Project 버튼을 클릭합니다.
    만들 항목을 선택합니다.

    6. 접속 영패를 등록한다.


    임의로 구축을 시작하고 오른쪽 상단의 "Project Settings"단추를 무시합니다.

    Environment Variables - Add Variable 버튼을 클릭합니다.
    다음 값을 등록합니다.
  • Name : 'GITHUB_ACCESS_TOKEN'
  • Value: 3단계.생성된 액세스 토큰

  • 이상

    참고 자료


    다음 도구를 사용할 수 있도록 허락해 주십시오.
    도구의 저자에게 감사 드립니다.
    CheckstyleFilter::Git
    Saddler
    Saddler::Reporter::Github
    FindbugsTranslateCheckstyleFormat
    샘플의 창고↓https://github.com/kmotoki/circleci_sample/commit/ffb91e16d62055665af8a9208bbd0ca7b8b6d225

    좋은 웹페이지 즐겨찾기