LoginSignup
44
21

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-08-28

はじめに

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

スクリーンショット

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

44
21
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
21