1
Help us understand the problem. What are the problem?

posted at

Organization

ぼくのかんがえたさいきょうのGithub Actionsで複数のCloudFormationファイルをCI/CDする方法

terraformになれてたぼくがCloudFormation(CFn)で立ち上げたプロダクトにアサインされてCI/CDをしようと思った時に考えたさいきょうの方法です。
(如何せんCFn初心者なので、全然最強でない可能性ありますがご了承ください。。)

やりたかったこと

  • dev(development),staging(stg),production(prd)など複数環境に手軽にデプロイ(prdはさすがに手軽すぎるのは危険なので、チェック機構は欲しい)
  • 手軽にデプロイしたいが、どういう変更が入るか(terraformで言うところのterraform planの結果)は知りたい
  • 色々カスタマイズできるようにしておきたい

実現したこと

  • 色々カスタマイズできるようにしておきたい

下記公式のactionがありましたが、リポジトリがアーカイブされており2年前を最後にメンテナンスされてないようだったので使うことを断念しました...

AWS CloudFormation "Deploy CloudFormation Stack" Action for GitHub Actions · Actions · GitHub Marketplace
https://github.com/marketplace/actions/aws-cloudformation-deploy-cloudformation-stack-action-for-github-actions

よって、自分でpythonで似たものを作ることにしました。

行ったことは下記の感じです。

  • プルリクエスト上でlinter, dryrunを流しコメントとして表示(サンプルはdevのみです。)

  • dev-release or stg-releaseブランチに force pushすると dev環境やstg環境にデプロイ

  • prd-release ブランチ向けにプルリクエストを作成するとdryrunが走り、良さそうであればマージ。すると prd環境にデプロイされる。

一応ソースはgithubにupしました。
https://github.com/LittleWat/cfn-github-action-sample

ツッコミなど大歓迎です。
ひとまず作っただけなので、今後運用していくと色々と問題が出てくるかと思います汗
随時対応していく所存です。

良きCI/CDライフをお送りください!

(cdkの方が今やメジャー感があるので、cdkも気になる今日この頃です)

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?