動機
GitHub Actionsという名前は知っていましたが、今まで使うことはありませんでした。今行っているプロジェクトでオンプレミス環境からパブリッククラウド(AWS)への移行を検討しています。
AWSではコンテナで環境を作成しようと思っており、ECSを利用する予定です。今日のDevelopers.IO2020のWebinarで、GitHub Actionsはすばらしいと説明されていたので使ってみようと思いました。
GitHubのCI/CDツール GitHub Actions
今までもCircleCIなどのツールは存在していました(わたしもCircleCIは使ったことがあります)。ソースコード管理はGitHubなので、GitHubと連携する必要がありました。しかしGitHub Actionsなら連携の設定をすることなくそのまま利用可能です。便利ですね。
試してみる
一度テスト用のリポジトリでGitHub Actionsを試してみます。
リポジトリの作成
適当にリポジトリを作成します。実際のリポジトリを想定してプライベートリポジトリを作成します。
GitHub Actionsの作成
GitHubのリポジトリを選択した状態で、上のActionsというタブをクリックします。すると以下のような表示になります。

今回はテストで作成するので、Set up this workflowをクリックします。
workflowの内容は、リポジトリ内のコードによって変わってきます。Dockerfileが保存されているリポジトリでActionsタブをクリックすると、docker-composeコマンドを実行するworkflowになりました。今回は空のリポジトリなので、echoするだけの単純なworkflowになったのだと思います。
workflowの保存
Set up this workflowをクリックすると、設定ファイルを編集する画面に遷移します。
ファイル名を適当に変更します。workflow内はそのままで、右上のStart commitをクリックします。workflowのyamlは.github/workflows/ディレクトリの下に作成します。
workflowの動作確認
どういったトリガーでworkflowが実行されるかはyamlのonを確認します。今回のyamlは
1 | on: |
となっており、masterブランチのpushと、pull_requestになります。つまり、
- masterブランチを更新
- masterブランチへのPull Requestを作成
で実行されると言うことになります。試しにmasterブランチへのPullRequestを作成すると以下のようになります。

workflowが実行された結果が表示されています。workflowの結果を確認するにはActionsタブをクリックします。左のペインですべてのworkflow(All workflows)か、特定のworkflowを選択すると、選択したものの結果が表示されます。
まとめ
今回GitHub actionsの初めの1歩として簡単に触ってみました。比較的わかりやすくスムーズに進みました。
次回はもう少しプロダクションよりな感じにしたいと思います。Ruby(Rails)でのテストの実装や、データベースなどのコンテナの立ち上げ方を理解し、workflowを試したいと思います。