GitHub Action で dotfiles のテストを実施する


Posted on 2019年 9月 22日 (日)
Tags githubactions, ci, dotfiles
githubactions, ci, dotfiles

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 することをよく実施すると思いますが、標準出力に流れすぎるせいなのか、あるいはコンテナに負荷がかかるせいか、実行しても止まらず、またログも見られない状態になります。

Share


See also