GitHub Action で macOS でのテストができるのが便利すぎた
最近 beta 利用が開始した GitHub Actions ですが、CircleCI と同じような使い心地で CI を実施できます。
ソースコードの定義ジャンプなども含めて、GitHub はどんどん便利になっていきますね。
CircleCI もコンテナ立ち上げが速くて重宝していたのですが、GitHub Action は GitHub インテグレートのため、すぐにアクセスでき、CircleCI にとってはかなりやっかいな競合となりそうです。
macOS のコンテナイメージが使える
CircleCI の場合は、Linux のイメージのコンテナが無料で利用できるのですが、macOS のイメージを利用しようとすると有料プランへの登録が必要でした。
しかし、GitHub Action の場合はなんと Windows, macOS のイメージも無料で利用できます(2019/09/22 現在)
そのため、これまでなかなかテストがしづらかった dotfiles のテストが実行できるようになりました。 (これまで dotfiles でのインストールはぶっつけ本番で、失敗したら適宜直してました…)
作成した dotfiles は go-zen-chu/simple-dotfiles: simple dotfiles for primer
support github workflow (#5) のように CI で setup スクリプトがうまく動くか確認しています。
name: CI
on: [push]
jobs:
build:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
- name: Run macos setup.sh
run: |
./macos/setup.sh
- name: Run tmux setup.sh
run: |
./tmux/setup.sh
- name: Run zsh setup.sh
run: |
# yes command causes long execution in container
./zsh/setup.sh
ここでは steps で直列実行していますが、job をわけることで並列実行も可能です。
気になるところ
yes コマンドを利用するとログが見られなくなる
こういった setup スクリプトの場合は、インストールで confirmation が必要な場合があります。 そのときに yes コマンドを pipe することをよく実施すると思いますが、標準出力に流れすぎるせいなのか、あるいはコンテナに負荷がかかるせいか、実行しても止まらず、またログも見られない状態になります。