실패한 rspec 테스트를 github의 check annotations에서 볼 수있게합니다.
5996 단어 RSpecGitHubActions루비reviewdog
서
GithubActions로 CICD 흐름을 돌려 편리!
하지만 rspec이 넘어졌을 때, 에러 개소를 밝히는데 어려움을 겪는다.
Github Checks에서 볼 수 있으면 좋을 것 같습니다.
깨다
reviewdog에서 업로드하려고했지만 지원되는 오류 형식은 없었습니다.
htps : // 기주 b. 코 m / 레 ぃ え w g / 레 ゔ ぃ w g # 아 아 이 b b p
서포트하기 위한 PR 만들까나와 함께 소스를 보고 있으면, Reviewdog Diagnostic Format
라고 하는 것이 제안되고 있다.
htps : // 기주 b. 코 m / ree w w g / re d w w g / t re / r / p 여과 / rdf
파서를 쓰는 것보다, 이쪽의 포맷에 맞추어, rspec의 출력을 가공하는 편이 좋을 것 같다.
하지만 아직 정식판이 아닌 것 같다. SARIF 좋아 보인다.
그래서 RDFormat가 아니라 기존의 입력 포맷에 맞추어 rspec의 포매터를 만들기로 한다.
htps : // 기주 b. 코 m / 레즈 우에 g g / 레즈 우 w g g
reviewdog에서 업로드하려고했지만 지원되는 오류 형식은 없었습니다.
htps : // 기주 b. 코 m / 레 ぃ え w g / 레 ゔ ぃ w g # 아 아 이 b b p
서포트하기 위한 PR 만들까나와 함께 소스를 보고 있으면,
Reviewdog Diagnostic Format
라고 하는 것이 제안되고 있다.htps : // 기주 b. 코 m / ree w w g / re d w w g / t re / r / p 여과 / rdf
파서를 쓰는 것보다, 이쪽의 포맷에 맞추어, rspec의 출력을 가공하는 편이 좋을 것 같다.
하지만 아직 정식판이 아닌 것 같다. SARIF 좋아 보인다.
그래서 RDFormat가 아니라 기존의 입력 포맷에 맞추어 rspec의 포매터를 만들기로 한다.
htps : // 기주 b. 코 m / 레즈 우에 g g / 레즈 우 w g g
errorformat
checkstyle XML format
를 시작해보고 동작 확인이 쉬웠던 checkstyle 로 한다.
XML이 힘들다.
급한
htps : // 기주 b. 이 m / 아 st 로노카 / rs ぺ c - 치 cksty ぇ _ r r
포맷터를 만들고 gem으로 만들었습니다.
구현중, mysql인가의 에러로 출력되는 ascii의 칼라 코드 \e[0;34m
그러고 보면 이런 일로 에러가 된 적이 있었다고, 점점 그리운 기분이 된다.
GithubActions의 설명 예
name: CI
on: push
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.1
- name: Restore gems
uses: actions/cache@v2
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Run rspec
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
bundle exec rspec \
--no-fail-fast \
--format RSpec::CheckstyleFormatter \
--out /tmp/rspec_result.xml
- name: Upload rspec result
if: always()
uses: actions/upload-artifact@v2
with:
name: rspec_result.xml
path: /tmp/rspec_result.xml
- name: Install reviewdog
if: always()
uses: reviewdog/action-setup@v1
with:
reviewdog_version: latest
- name: Report rspec error
if: always()
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cat /tmp/rspec_result.xml | reviewdog -name=rspec -f=checkstyle -reporter=github-check -filter-mode=nofilter
이런 느낌.
reviewdog 놀라운
linter 용 형식으로 전달하는 것은 어떨까요?
료.
Reference
이 문제에 관하여(실패한 rspec 테스트를 github의 check annotations에서 볼 수있게합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/astronoka/items/5b218307c2d8170536b1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
name: CI
on: push
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.1
- name: Restore gems
uses: actions/cache@v2
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Run rspec
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
bundle exec rspec \
--no-fail-fast \
--format RSpec::CheckstyleFormatter \
--out /tmp/rspec_result.xml
- name: Upload rspec result
if: always()
uses: actions/upload-artifact@v2
with:
name: rspec_result.xml
path: /tmp/rspec_result.xml
- name: Install reviewdog
if: always()
uses: reviewdog/action-setup@v1
with:
reviewdog_version: latest
- name: Report rspec error
if: always()
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cat /tmp/rspec_result.xml | reviewdog -name=rspec -f=checkstyle -reporter=github-check -filter-mode=nofilter
Reference
이 문제에 관하여(실패한 rspec 테스트를 github의 check annotations에서 볼 수있게합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/astronoka/items/5b218307c2d8170536b1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)