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 スクリプトがうまく動くか確認しています。
1name: CI
2
3on: [push]
4
5jobs:
6 build:
7 runs-on: macOS-latest
8 steps:
9 - uses: actions/checkout@v1
10 - name: Run macos setup.sh
11 run: |
12 ./macos/setup.sh
13 - name: Run tmux setup.sh
14 run: |
15 ./tmux/setup.sh
16 - name: Run zsh setup.sh
17 run: |
18 # yes command causes long execution in container
19 ./zsh/setup.sh
ここでは steps で直列実行していますが、job をわけることで並列実行も可能です。
気になるところ
yes コマンドを利用するとログが見られなくなる
こういった setup スクリプトの場合は、インストールで confirmation が必要な場合があります。 そのときに yes コマンドを pipe することをよく実施すると思いますが、標準出力に流れすぎるせいなのか、あるいはコンテナに負荷がかかるせいか、実行しても止まらず、またログも見られない状態になります。