Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

自分の環境でもようやく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アカウントの用意も不要です!

スクリーンショット

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

tarumzu
Android/Ruby/Docker/AWS/Vim
https://tarumzu.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away