Closed6

CD環境の構築

purupurupupurupurupu

PJ概要

バッドプラクティス盛り盛りのPJにCI/CDを導入していく。
現状手動でgit pullpullpullpullpullpullpullしているので、EC2内での作業を少しでも減らしていく。

現時点の決め

  • CDではコードのデプロイのみとする。DBの自動マイグレーションは実施しない。
  • Laravel環境だがmigrationを利用していないので、CI展開に備えてmigration実行可能な状態にする。
  • GitHub ActionsとCode Deployにてパイプラインは構築予定。不都合あればAWSに全部寄せるつもり。
    • スクラップのメインはここになると思われる。
  • migrationの漏れが目立つため、GitHubのワークフローを見直す。というか今ワークフローなんてない^q^
purupurupupurupurupu

方針策定

  • CDのパイプラインはGitHub、GitHub Actionsのみで完結させることとする。
    • CodeDeployを利用するメリットがわからなかったこと。
    • まだPMFの段階であり、必要最小限でまずは実施に移したいため。

具体フロー

  • リポジトリに対して自動マージを許可する。
    • レビュイーはプルリクを投げる際に自動マージ設定をぽちぽちする。
  • GitHubのプルリクエストを承認制にする。
    • コードレビューは存在しているが、制度立てて責務を負いながらやっていくこととする。
  • approveによってdevelopへマージされる。(自動マージの条件を満たす)
  • developへのマージをフックとしてGitHub Actionsを発火させる。
  • Actionsの内容はdevelopへPUSHされたときにEC2へSSHしてgit pullするというもの。
purupurupupurupurupu

検証

GItHubとAWSとで無事に疎通ができるかを検証したい。
適当に検証用のリポジトリとワークフローを準備。開発環境のEC2で検証用のリポジトリをpullできるかを確認したい。

開発環境のGItを初めて追いかけたりしたので勉強になりました...
元からSSHで接続していたみたいなので一旦よし。

purupurupupurupurupu

検証結果

基本的にはこちらの記事を参考にさせていただきました。
ライブラリのversionが古くてwarningが出ているので、今のタイミングでアップデートしておく。
https://note.com/ryoppei/n/nf2bf7ee78b0b

記事中には書かれていないけど、EC2上で作成した公開鍵をAuthorized Keyに登録してあげないとGItHubからAWSへのSSHでコケるので注意。

purupurupupurupurupu

warningの撲滅

node12が非推奨になるので、利用しているパッケージのverを上げないとダメ。
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

haythem

プルリクを見ると対応済みっぽい。
1.3に上げればOK。
https://github.com/haythem/public-ip

checkout

checkout@v3へ変更

configure-aws-credentials

末尾にnode16と追記すればOK。
uses: aws-actions/configure-aws-credentials@v1-node16

このスクラップは2023/03/29にクローズされました