Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
21
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

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アカウントの用意も不要です!

スクリーンショット

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

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
21
Help us understand the problem. What are the problem?