はじめに
自分の環境でもようやくGithub ActionsのBetaが来たのでさっそく触ってみました。
Dangerを利用してプルリクエスト時に自動コードチェック出来るようにしていきます。
- 2019/9/24追記
今までは利用申込みから使えるようになるまで数日のタイムラグがあったのですが9/19からすぐ使えるようになったようです。
GitHub Actionsのベータ版がすぐに使えるようになりました! 今まではベータ版申込みから実際に使えるまでウェイトリストがありましたが、今週より申込みからすぐに使えるようになりました。お申込みはこちらから https://t.co/dZpwjKDnCc
— GitHub Japan (@GitHubJapan) September 19, 2019
Github Actionsの設定ファイル
いきなり本題ですがGithub Actionsのymlファイルです。
Danger自体の設定とktlint自体の設定は今回省略するので、知りたい方はそれぞれ左記のリンクを参照してください。
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
それでは設定ファイルの内容を順番に説明していきます。
まず、on
にpull_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アカウントの用意も不要です!
非常に便利!
コードはこちらに置いてあるので参考にどうぞ。