Edited at

Github Actions (v2) でDanger + ktlintを実行させる


はじめに

自分の環境でもようやくGithub ActionsのBetaが来たのでさっそく触ってみました。

Dangerを利用してプルリクエスト時に自動コードチェック出来るようにしていきます。


  • 2019/9/24追記

    今までは利用申込みから使えるようになるまで数日のタイムラグがあったのですが9/19からすぐ使えるようになったようです。



Github Actionsの設定ファイル

いきなり本題ですがGithub Actionsのymlファイルです。

Danger自体の設定ktlint自体の設定は今回省略するので、知りたい方はそれぞれ左記のリンクを参照してください。


.github/workflows/ktlint.yml


name: CI
on:
pull_request:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup ruby
uses: actions/setup-ruby@v1
with:
ruby-version: '2.6'
architecture: 'x64'
- name: install danger
run: |
gem install bundler
bundle install
- name: run ktlintCheck
run: ./gradlew ktlintCheck
- name: run danger
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: danger

それでは設定ファイルの内容を順番に説明していきます。

まず、onpull_requestを指定することでターゲットブランチがmasterのプルリクエストを作成することでCIが走るようになっています。

on:

pull_request: # ここをpushにするとpush時にCIが走る
branches:
- master

続いてruns-onで仮想環境のイメージを選択できます。現時点では下記の表のVirtual environmentにあるようにWindows、Ubuntu、macOSと選択できます。

jobs:

build:
runs-on: ubuntu-latest

スクリーンショット

最後にstepsです。処理の塊をActionと呼び、Actionはusesに設定することが出来ます。既に用意されているActionの一覧はこちらを参照してください。

    steps:

- uses: actions/checkout@v1 # git checkoutしてくれるAction。
- name: Setup ruby
uses: actions/setup-ruby@v1 # ruby設定用のAction
with:
ruby-version: '2.6'
architecture: 'x64'
- name: install danger # dangerはrunでスクリプトを記述する
run: |
gem install bundler
bundle install
- name: run ktlintCheck # ktlintCheckを実行させる
run: ./gradlew ktlintCheck
- name: run danger
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# GITHUB_TOKENがデフォで発行されるのでそれをdangerで利用する。
# 環境変数についての詳しい話は↓参照
# https://help.github.com/en/articles/virtual-environments-for-github-actions
run: danger # dangerはgithub actionsに対応しているため実行するだけでOK!

なんと、、たったこれだけでプルリクで自動コードチェックが走りました。

自前でのGithubトークンの発行やbotアカウントの用意も不要です!

スクリーンショット

非常に便利!

コードはこちらに置いてあるので参考にどうぞ。