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
errorformat
checkstyle XML format
Essayez 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é.