Github Actions (β) がリリースされていたので、せっかくなので自分が現在作成しているプロジェクトをネタに Github Actions の設定を行ってみました。
まずはβに参加する
help ページから Github Actions に参加します。
https://help.github.com/ja/articles/about-github-actions#about-github-actions
このページの GitHub Actionsの限定パブリックベータへの参加をリクエストする というところから参加可能です。
使えるようになったら登録してるメールアドレス宛に連絡がきます。
設定
Github Actions が使えるようになるとリポジトリの上部に Actions タブが出てくるのでそこから設定を行います。
今回は今自分で作成している Go で書かれたプロジェクトを使って Github Actions の設定をしてみます。
ます最初に言語ごとに指定された「Set up workflow」を押下します。
押下すると {{ Project Name }}/.github/workflows/{{ $lang }}.yaml
というファイルが生成されます。
Go を選択した場合、なぜか標準では dep を使うようになっているので通常の go get で依存関係を取得するように修正します。
デフォルトで作成される Workflow を定義した yaml ファイルは以下
name: Go on: [push] jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Set up Go 1.12 uses: actions/setup-go@v1 with: go-version: 1.12 id: go - name: Check out code into the Go module directory uses: actions/checkout@v1 - name: Get dependencies run: | go get -v -t -d ./... if [ -f Gopkg.toml ]; then curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh dep ensure fi - name: Build run: go build -v .
Install Dependencies で go modules を使うことと、今回はテストを走らせたいだけなので Build を step に追加するのではなく、Test を step に追加します。
詳細な Workflow syntacs は こちら に記載してあります。
設定して commit を行うとActions を設定したファイルが作成されます。
{{ $Project }}/.github/workflows/{{ $lang }}.yaml
があると自動的に Actions が走ります。
(どうやらファイル名はなんでも大丈夫なようです。追記あり)
あとは Actions タブを見ると自動的に設定した通りに自動でワークフローが実行されているのがわかります。
サンプル: https://github.com/emahiro/glc/actions
まとめ
Github Actions は想像以上に簡単にセットアップできました。
Github 謹製のツールなので CI から解放されるのもとてもいいなと思います。
早く正式版のリリースがされてほしいなと感じました。
追記
複数 の Goのバージョンでテストする
複数のGoのバージョンに対応させた設定ファイルを用意します。
ref: https://github.com/emahiro/glc/tree/master/.github/workflows
imageについて
現状 github の公式が指定してる環境しか作ることはできません。
今後 image を指定できるようになってほしいなと思いました。特殊な環境 (appengine とか) を作るのがまだめんどくさそう...
やってる人とかいるのかな。