실패한 rspec 테스트를 github의 check annotations에서 볼 수있게합니다.



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
  • 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 용 형식으로 전달하는 것은 어떨까요?
    료.

    좋은 웹페이지 즐겨찾기