GitHub Actions とは
GitHub の特定のアクションをトリガーにCI/CD的なことを実行できるサービス
- CircleCI とか AWS Codebuild みたいのを GitHub が提供してくれるようになった
アクションのつくりかた
Githubのリポジトリから「Actions」を選択
いろんなActionをサジェストしてくれるけど、今回は Simple workflow
を選択
すると、 .github/workflows/blank.yml
にファイルが生成される
name: CI on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Run a one-line script run: echo Hello, world! - name: Run a multi-line script run: | echo Add other actions to build, echo test, and deploy your project.
設定ファイルの構文
公式ドキュメントを参照
ざっくりこんなかんじ
name
: 名前on
: 発火するイベントjobs
: イベント発火時に実行する処理を格納するところjobs.<job_id>
: イベント発火時に実行する処理。<job_id>
は buildjobs.<job_id>.runs-on
: 実行環境。windowsとかMacOSもあるjobs.<job_id>.steps
: 実行する処理jobs.<job_id>.uses
: ジョブのステップの一部として実行される外部のアクション。公開リポジトリなどを参照できる。今回の場合 https://github.com/actions/checkout が実行されるjobs.<job_id>.name
githubに表示されるステップの名前jobs.<job_id>.run
ステップで実行される処理。runs-on
で指定したOSでコマンドラインが実行される
アクションを実行してみる
コードを commit すると早速アクションが実行される
実行結果
step単位で処理が実行されているのが分かる
感想
- 他サービスを使わずにGitHub上でCIまでまとめて実行できるのは良い感じに思える
- 今の会社だと、CIにAWS CodeBuildを使っているが、private VPCでビルドする必然性がなければ、GitHub Actionsに移行した方が管理がシンプルになってよいのかもしれない
- PRとの連携も、他のサービス使うより楽そう(な気がする
ざっくりそんなかんじ