Closed6
CD環境の構築

PJ概要
バッドプラクティス盛り盛りのPJにCI/CDを導入していく。
現状手動でgit pullpullpullpullpullpullpullしているので、EC2内での作業を少しでも減らしていく。
現時点の決め
- CDではコードのデプロイのみとする。DBの自動マイグレーションは実施しない。
- Laravel環境だがmigrationを利用していないので、CI展開に備えてmigration実行可能な状態にする。
- GitHub ActionsとCode Deployにてパイプラインは構築予定。不都合あればAWSに全部寄せるつもり。
- スクラップのメインはここになると思われる。
- migrationの漏れが目立つため、GitHubのワークフローを見直す。というか今ワークフローなんてない^q^

方針策定
- CDのパイプラインはGitHub、GitHub Actionsのみで完結させることとする。
- CodeDeployを利用するメリットがわからなかったこと。
- まだPMFの段階であり、必要最小限でまずは実施に移したいため。
具体フロー
- リポジトリに対して自動マージを許可する。
- レビュイーはプルリクを投げる際に自動マージ設定をぽちぽちする。
- GitHubのプルリクエストを承認制にする。
- コードレビューは存在しているが、制度立てて責務を負いながらやっていくこととする。
- approveによってdevelopへマージされる。(自動マージの条件を満たす)
- developへのマージをフックとしてGitHub Actionsを発火させる。
- Actionsの内容はdevelopへPUSHされたときにEC2へSSHしてgit pullするというもの。

検証
GItHubとAWSとで無事に疎通ができるかを検証したい。
適当に検証用のリポジトリとワークフローを準備。開発環境のEC2で検証用のリポジトリをpullできるかを確認したい。
開発環境のGItを初めて追いかけたりしたので勉強になりました...
元からSSHで接続していたみたいなので一旦よし。

検証結果
基本的にはこちらの記事を参考にさせていただきました。
ライブラリのversionが古くてwarningが出ているので、今のタイミングでアップデートしておく。
記事中には書かれていないけど、EC2上で作成した公開鍵をAuthorized Keyに登録してあげないとGItHubからAWSへのSSHでコケるので注意。

warningの撲滅
node12が非推奨になるので、利用しているパッケージのverを上げないとダメ。
haythem
プルリクを見ると対応済みっぽい。
1.3に上げればOK。
checkout
checkout@v3へ変更
configure-aws-credentials
末尾にnode16と追記すればOK。
uses: aws-actions/configure-aws-credentials@v1-node16

Slackへの通知
以下の方法で実施する。
特に詰まることなく通知できた。
このスクラップは2023/03/29にクローズされました