💭
メモ: AWS CodePipelineで承認待ちが複数発生したときの挙動
これはなに?
今日、AWS CodePipelineの構築をしていたときに、「そういや手動承認のステージって一つしか承認できないけど、その間に2つも3つも実行されたらどういう順序で実行されるんだっけ?」というのを調べた時のメモ(数年前に同じようなことを調べた気がするので今度こそ忘れないようにメモとしてpublishしておく)
結論: 承認ステージに乗っているもの + 最新のものだけが生き残る
以下は置き換えについての説明部分
試した時のメモ
- まず、Githubの特定のリポジトリにpushされたら発火するパイプラインを作る。この際に手動承認ステージを作っておく
- "tmp"とコミットログに書いてcommitしてpushする
- "tmp"のコミットが手動承認ステージに乗って承認待ち状態になってることを確認する
- "tmp2"とコミットログに書いてcommitしてpushする
- "tmp"のコミットが手動承認ステージにいるため、"tmp2"のコミットはインバウンド実行(上に貼ったドキュメントに書いてある)としてステージに入る前の状態で保持される
- "tmp3"とコミットログに書いてcommitしてpushする
- "tmp2"のコミットで発火した実行はキャンセル(正確にはsuperseded = 置き換えられた)されて、インバウンド実行として"tmp3"のコミットが保持されていることを確認した
a. 実行履歴上の状態についての説明 https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/concepts.html#concepts-superseded
ちなみに
CodePipelineの実行履歴を見ると代入されました
となっているが、これはsupersededのこと
Discussion