経緯
オンプレでアプリの開発をすることになりました。
その際、自動デプロイで本番環境とステージング環境ができればみんな楽に動作確認ができる!
そんな思いから、以前使っていて少し馴染みがあったgithub actionsを調べた記事です。
github actionsとは?
github actionsとは、ビルド、テスト、デプロイを自動化してくれるCICDのプラットフォームです。
例えば、以下のようなことが可能です。
- リポジトリのpull requestをビルドしてテスト
- マージされたpull requestを運用環境にデプロイ
- issuesの作成とともに適切なラベルの付与を追加
- pushしたら自動でpull requestを作成
まさにやりたいことができそうです!
ちなみに、pushしたら自動でpull requestを作成するワークフローも作成したので、後ほど記事にしたいと思います。
github actionsの用語
Workflows
github actionsの実行ファイルのこと。
1つ以上のジョブを自動実行する。
yamlファイルにより定義され、リポジトリ内の .github/workflows
ディレクトリの中に格納される。
Event
例えば、pull requestが作成された時、issuesが開かれた時、pushされた時など、どのような時にワークフローが動いて欲しいかを決める。
また、スケジュールに従って、APIで、手動で、ワークフローを動かすことができる。
job
実行してほしいコマンドやスクリプトの一連をまとめたもの。
また、実行してほしいコマンドやスクリプトをステップという
通常、ジョブは依存関係がなく、並列で処理されるが、他のジョブとの依存関係も構成できる。
ジョブが他のジョブに依存する場合は、ジョブが完了するまで待ってからもう一つのジョブが実行される
action
githubからのgitリポジトリのpull、ビルド環境に適したツールの設定やクラウドプロバイダーの認証設定をやってくれるもの。便利機能。
基本的に、すごい人が作ってくれたリポジトリがあるので、それを活用して複雑で頻繁な作業を簡略化できる。
独自のアクションを記述することも、人が作ったアクションを見つけることもできる。
runner
ワークフローを動かすサーバーのこと。
各ランナーでは、一度に1つのジョブを実行できる。
Ubuntu Linux、Microsoft Windows、macOS ランナーが提供される。
参考文献