Bequem, um den CICD-Fluss mit Github-Aktionen zu drehen! Aber wenn rspec kaputt ist, ist es schwierig, den Fehlerteil herauszufinden. Ich hoffe, Sie können es auf Github Checks sehen.
Ich habe versucht, mit reviewdog hochzuladen, aber es wurde kein Fehlerformat unterstützt. https://github.com/reviewdog/reviewdog#available-pre-defined-errorformat
Als ich mir die Quelle ansah und dachte, ich könnte eine PR machen, um sie zu unterstützen, wurde ein Vorschlag namens "Reviewdog Diagnostic Format" vorgeschlagen. https://github.com/reviewdog/reviewdog/tree/master/proto/rdf
Es scheint besser, die Ausgabe von rspec nach diesem Format zu verarbeiten, als einen Parser zu schreiben. Aber es scheint noch nicht die offizielle Version zu sein. SARIF sieht gut aus. Daher habe ich anstelle von RDFormat beschlossen, einen Formatierer für rspec gemäß dem vorhandenen Eingabeformat zu erstellen. https://github.com/reviewdog/reviewdog#input-format
errorformat
checkstyle XML format
Versuchen Sie, einen Prototyp zu erstellen, und stellen Sie ihn auf checkstyle ein, um die Funktionsweise zu überprüfen.
Ich vermisse XML.
https://github.com/astronoka/rspec-checkstyle_formatter Ich habe einen Formatierer gemacht und daraus ein Juwel gemacht.
Während der Implementierung hat der XML-Builder / Parser einen Fehler aufgrund des ASCII-Farbcodes "\ e [0; 34m" ", der mit einem Fehler wie" MySQL "ausgegeben wird. Übrigens fühle ich mich immer nostalgischer, wenn ich dadurch einen Fehler bekomme.
Beschreibungsbeispiel in Github-Aktionen
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
so was.
reviewdog Großartig: funkelt:
Während Sie sich fragen, wie Sie es im Format für Linter übergeben sollen Erledigt.