Actions GitHub a diverses actions publiées dans Marget Place. Installez-le simplement et il est prêt à être utilisé dans votre projet Rails. Mais ... si vous le laissez tel quel, vous utiliserez de nombreuses machines virtuelles, vous consommerez donc des crédits dans un référentiel privé en un clin d'œil ... Nous avons donc décidé de le faire pour notre projet.
Ce serait bien si je pouvais analyser l'ensemble du projet cible et le garder propre à tout moment, mais je ne pouvais pas le faire parce que je l'ai mis au milieu. Par conséquent, il s'agit au moins de nettoyer les demandes d'extraction émises par chacun.
Le code lorsque je l'ai essayé est ici. https://github.com/ken1flan/test_with_reviewdog
En gros, ce que vous faites est comme ça.
L'outil d'analyse statique que reviewdog exécute en interne est décrit dans .reviewdog.yml
.
yml:.github/workflows/code_analysis.yml
name: code_analysis
on: [pull_request]
jobs:
code_analysis:
name: runner
runs-on: ubuntu-latest
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7.1
- uses: actions/setup-node@v1
with:
node-version: 12.x
- name: cache vendor/bundle
uses: actions/cache@v1
with:
path: vendor/bundle
key: bundle-${{ hashFiles('**/Gemfile.lock') }}
- name: cache node_modules
uses: actions/cache@v1
with:
path: node_modules
key: yarn-${{ hashFiles('**/yarn.lock') }}
- name: bundle install
run: bundle check || bundle install --jobs=4 --retry=3 --path vendor/bundle
- name: yarn install
run: yarn install
- name: install reviewdog
uses: reviewdog/action-setup@v1
- name: reviewdog
run: reviewdog -reporter=github-pr-check
yml:.reviewdog.yml
runner:
rubocop:
cmd: bundle exec rubocop
brakeman:
cmd: bundle exec brakeman --quiet --format tabs
reek:
cmd: bundle exec reek --single-line
haml-lint:
cmd: bundle exec haml-lint
eslint:
cmd: yarn run eslint app/**/*.js
stylelint:
cmd: yarn run stylelint app/**/*.{css,scss}
Comme ça Est une sortie.
Ce qui se trouve dans la demande d'extraction est affiché pour une visualisation facile.
Puisque Filtered Findings
contient tout ce qui se trouve dans le projet ... vous pouvez également voir le nombre de problèmes que vous rencontrez, vous voudrez peut-être vous en préoccuper.
[Actions / ruby] de GitHub (https://github.com/actions/setup-ruby) ne peut pas spécifier la version du correctif, et la dernière version est utilisée avec un léger retard. Je pense que je spécifie la version de Ruby dans le Gemfile, mais ce n'est pas compatible avec cela, la version change souvent et l'installation du bundle échoue.
Ruby / setup-ruby maintenu par la communauté Ruby peut également spécifier la version du correctif, j'ai donc décidé de l'utiliser.
Vous pouvez vérifier à l'avance en installant reviewdog
sur votre propre PC et en procédant comme suit.
$ reviewdog --diff='git diff main'
Si vous demandez à un humain de faire cela, vous et le critique serez tous les deux heureux, il est donc préférable de demander à une machine. Quand on le fait remarquer, c'est vrai qu'il y a de nombreux cas, il est donc utile d'apprendre un bon style d'écriture que je ne peux pas appréhender par moi-même.
Recommended Posts