結論
作成するファイルは以下の 2つ です。
.github/workflows/danger_js.yml
- ファイル名は何でも良いです
- 単独のファイルとして切り出さず、既存の yml に内容を追加しても大丈夫です
dangerfile.js
ファイルの内容
2つのファイルの内容は次のとおりです。
.github/workflows/danger_js.yml
name: Danger JS on: [pull_request] jobs: build: name: Danger JS runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Danger uses: danger/danger-js@11.0.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DANGER_DISABLE_TRANSPILATION: true
上記のうち、細かいところは書き換えて OK です。
それにしても GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
が便利すぎます。
dangerfile.js
dangerfile.js
の書式については 公式ドキュメント などが参考になります。もととなっている Dangerfile*1 の内容をいい感じに移植してもよいです。
サンプルは以下です。CHANGELOG.md
が変更されていないと怒られるやつです。
const hasChangelog = danger.git.modified_files.includes('CHANGELOG.md') const isTrivial = (danger.github.pr.body + danger.github.pr.title).includes( '#trivial' ) if (!hasChangelog && !isTrivial) { warn('Please add a changelog entry for your changes.') }
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
のおかげで別途何も設定せずに Pull Request のコメントを残してくれて大変に便利です。
注意点
1. DANGER_DISABLE_TRANSPILATION: true を設定する
GitHub Actions において、環境変数 DANGER_DISABLE_TRANSPILATION: true
を設定しないと落ちます*2。
この件については Issue が Open されています。
2. dangerfile.js は .ts だといろいろ怒られるので js でいい
公式サイトには .ts
のパターンも書いてありますが、.js
で十分だと思います。.ts
にすると ts(2307)
で怒られたりします。