Pratique pour faire pivoter le flux CICD avec les actions Github! Mais lorsque rspec est cassé, il est difficile de trouver la partie d'erreur. J'espère que vous pouvez le voir sur Github Checks.
J'ai essayé de télécharger avec reviewdog, mais il n'y avait pas de format d'erreur pris en charge. https://github.com/reviewdog/reviewdog#available-pre-defined-errorformat
Quand je regardais la source en pensant que je pouvais faire un PR pour la soutenir, une proposition appelée «Reviewdog Diagnostic Format» a été proposée. https://github.com/reviewdog/reviewdog/tree/master/proto/rdf
Il semble préférable de traiter la sortie de rspec selon ce format plutôt que d'écrire un analyseur. Mais cela ne semble pas encore être la version officielle. SARIF a l'air bien. J'ai donc décidé de créer un formateur rspec selon le format d'entrée existant au lieu de RDFormat. https://github.com/reviewdog/reviewdog#input-format
errorformatcheckstyle XML formatEssayez de créer un prototype et réglez-le sur checkstyle, ce qui facilite la vérification du fonctionnement.
XML me manque.
https://github.com/astronoka/rspec-checkstyle_formatter J'ai fait un formateur et en ai fait un bijou.
Lors de l'implémentation, le générateur / analyseur XML a une erreur avec le code de couleur ascii \ e [0; 34m" qui est généré avec une erreur telle que mysql
Au fait, je me sens de plus en plus nostalgique lorsque j'obtiens une erreur à cause de cela.
Exemple de description dans les actions Github
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
comme ça.

reviewdog Great: scintille:
Je me demandais comment le passer au format pour linter Terminé.