Circleci에서 checkstyle과FindBugs 기반 코드 해석을 실행하고 Giithub에 대한 논평을 하는 방법
이 문장으로 설명하다
아무튼 그렇습니다.
코드 해석은 checkstyle과 Findbugs를 사용합니다.
또 Giithub에 대한 대량 경고 메시지를 방지하기 위해
마스터 지점에 비해 차이가 있는 파일만 경고합니다.
전제 조건
checkstyle.xml
의 이름으로 창고에 추가되었습니다.절차.
1. Gemfile 구성
다음은 프로젝트의 최상위 디렉토리에 저장된 것입니다.
Gemfilesource '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.ymlmachine:
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 버튼을 클릭합니다.
다음 값을 등록합니다.
source 'https://rubygems.org'
gem 'findbugs_translate_checkstyle_format', '>= 0.2.6'
gem 'checkstyle_filter-git'
gem 'saddler'
gem 'saddler-reporter-github'
#!/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
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
이상
참고 자료
다음 도구를 사용할 수 있도록 허락해 주십시오.
도구의 저자에게 감사 드립니다.
CheckstyleFilter::Git
Saddler
Saddler::Reporter::Github
FindbugsTranslateCheckstyleFormat
샘플의 창고↓https://github.com/kmotoki/circleci_sample/commit/ffb91e16d62055665af8a9208bbd0ca7b8b6d225
Reference
이 문제에 관하여(Circleci에서 checkstyle과FindBugs 기반 코드 해석을 실행하고 Giithub에 대한 논평을 하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kmotoki/items/fbc3efc504d89c8e470a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Circleci에서 checkstyle과FindBugs 기반 코드 해석을 실행하고 Giithub에 대한 논평을 하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kmotoki/items/fbc3efc504d89c8e470a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)