SAMURAI PROJECTでは自作のWordPressテーマやフロントエンドのリポジトリなどのソースコードはすべてGitHubで管理しています。特にWordPressテーマはGitHub上のmainリポジトリが更新(コミットやマージなど)されたら自動で本番サーバの更新をするようにしていてその仕組みにGitHub Actionsを使っています。

GitHub Actionsを理解して使いこなせるようになれば、テーマを編集したあとにサーバを更新する作業が劇的に楽になるので何回かに分けて紹介します。

初回となる今回は、GitHub Actionsについてととりあえず動かしてみること部分について紹介します。

GitHub Actionsとは

Github ActionsとはGitHub社が提供しているCIサービスです。CIサービスはJenkinsやCircle CIなどいろんなところでサービスが提供されています。ただGitHubがGitHub Actionsを提供を開始したときはGitHub内で完結できることから発表時は衝撃的な感じだったりしました。

GitHubが「GitHub Actions」を発表、開発者が好きな機能を使ってワークフローを自動化

特にCIサービスで一般的だったパブリックリポジトリだけではなくプライベートリポジトリについても必要十分な無料枠があってとりあえず始めるにも手軽に使いやすいCIサービスになっています。

なぜこんなことができるのかというとGitHub社がMicrosoftに買収されたことが大きいです。Microsoftに買収されたことでGitHubのバックエンドサーバーがMicrosoftが提供しているAzureになりAzureが提供しているAzure Pipelineをforkしたサービスになっているそうです。

特に大手クラウドベンダーが提供しているCIサービスは、専業のCIサービスと比較してもかなり安価で提供していてGitHubもMicrosoftの一員で資金力に余裕ができ安価かつ必要十分な無料枠が提供できるようなCIサービスを作ることができているのでしょう。

Azure Pipeline

個人で何か作るにしてもCIは導入すべきだと思っていて、編集したファイルをアップロードし忘れてエラーになったとか手作業でやっていることを自動でやってくれるのは作業効率が劇的に変わります。

なぜCIが必要なのか

GitHub Actionsの無料枠

GitHub ActionsはGitHubの無料プランで毎月2000分まで実行時間と500MBのストレージを持つことがGitHubのアカウントごとにできます。実行時間は毎月リセットされますが、ストレージはリセットされることはありません。ProやTeamのプランだと実行時間は3000分に増えストレージも大きくなります。

実行時間の無料枠は、Linuxを使った場合でCIの実行環境のOSがWindowsやMacの場合、それぞれWidnows1000分・Mac200分となり特にMacでiOSなどのアプリのビルドをする場合だと無料枠だけでは少し足りないかもしれないです。

無料枠を超えた場合でもGitHubの初期設定の場合だとGitHub Actionsが動くことはないので自動で請求されるといったことはありません。

GitHubの無料枠を超えて実行した場合は使った環境によってGitHubから請求されます。詳しくはGitHub Actionsのドキュメントをご覧ください。

GitHub Actionsの支払いについて

GitHub Actionsを触ってみる

それではGitHub Actionsを使ってみましょう。ひとまずGitHubアカウントを作った状態でリポジトリは作成しておきます。

リポジトリページでActionsをクリックしてください。

クリックすると以下のようなページになるので「Set up a workflow yourself」リンクをクリックします。

「Set up a workflow yoursalf」リンクをクリックするとGitHub Actionsの編集ページに遷移するのでそのままで右側にある「Start commit」ボタンをクリックして「Commit new file」ボタンをクリックします。

GitHub Actionsの編集ページ
GitHub Actionsのコミット

これでGitHub Actions用のYAMLファイルが作成されてGitHub Actionsの実行がされます。実行されて成功すると下記のような表示になるはずです。

GitHub Actionsの実行結果

GitHub Actionsの実行結果をみるには「Create main.yml」をクリックすればみれます。

実行結果のサマリー
buildをクリックしたときの実行結果

これでGitHub Actionsの作成が完了しました。このGitHub Actionsの設定は、GitHub Actions内でechoコマンドで「Hello World!」と出力されるのと2行のechoコマンドで「Add other actions to build,」「test, and deploy your project.」と出力される設定です。

また実行に使った時間は2分ぐらいになっています。

再度実行するには「Re-run job」ボタンをクリックして「Re-run all job」をクリックすれば再実行されます。このときはキャッシュが効いているのかかなり早く実行されました。

まとめ

今回はGitHub Actionsについての説明とGitHub Actionsの作成方法を紹介しました。第1回ということで使ってみることを重視して説明しています。

次回は、GitHub Actionsで作成されたYAMLファイルの説明などを紹介します。