AWS CodePipeline のパイプラインタイプ v2 

# パイプラインタイプ v2

AWS CodePipeline のパイプラインタイプ v2 では、

- パイプラインレベルの変数(CodePipeline でパラメータ化されたパイプラインのサポートを開始)
- トリガー設定（CodePipeline で git タグでのトリガーのサポートを開始）

ができるのが、従来の v1 との違いのようです。

https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/pipeline-types.html

https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/pipeline-types-planning.html

なお、CDK ではまだ、v2 には未対応のようです。


# CodePipeline でパラメータ化されたパイプラインのサポートを開始

入力パラメータをパイプライン実行に動的に渡すことができます。
 
https://aws.amazon.com/jp/about-aws/whats-new/2023/10/aws-codepipeline-parameterized-pipelines/

## やってみる

今回の機能を使うためには先述の通り、パイプラインタイプで、**v2** を選択する必要があります。
![スクリーンショット 2023-12-03 19.22.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/3ac3f15d-cabc-d840-b32b-2cfdd4ee2abb.png)

次の通り、パイプラインレベルで変数を追加し、これを後続のデプロイに渡すようにします。
![スクリーンショット 2023-12-03 19.30.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/6acec2ed-9230-f14c-aa89-22984649ff28.png)

ソースステージでは、AWS CodeCommit を指定しておきます。
![スクリーンショット 2023-12-05 1.19.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/0418f138-82ba-a267-4f67-d4b6d3acccb7.png)

次の通りデプロイステージには Amazon S3 を指定しておき　S3 オプジェクトキーに変数 `#{variables.Variable1}` のように記述します。
![スクリーンショット 2023-12-05 1.19.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/bd53f5c5-fe41-5659-0913-9e14c9d9ec63.png)

※ 変数の指定の詳細については下記ドキュメントの **パイプラインレベルの変数名前空間** を参照。

https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/reference-variables.html#reference-variables-workflow

デプロイ対象のS3バケットを確認すると変数で指定した、`Value1` という名前でオプジェクトが作成されていることが確認できました。
![スクリーンショット 2023-12-05 1.22.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/ac661bd1-c99f-6d9d-6986-43e76e4c88e7.png)

後で気づきましたが、チュートリアルもあるようです。

https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-pipeline-variables.html#tutorials-pipeline-variables-view


# CodePipeline で git タグでのトリガーのサポートを開始

git タグがプッシュされたときにパイプラインを開始する。

https://aws.amazon.com/jp/about-aws/whats-new/2023/10/aws-codepipeline-triggering-git-tags/

## やってみる

こちらはチュートリアルを参考に実施してみたいと思います。

https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-github-tags.html

今回の機能を使うためには先述の通り、パイプラインタイプで、v2 を選択する必要があります。
![スクリーンショット 2023-12-06 14.03.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/1a012e23-0d1d-43f3-423d-781b7a5a34e2.png)

ソースステージで自身の [Github に接続](https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/connections-github.html)します。
ここが、今回のアップデートですが、パイプライントリガーで、「**Git タグ**」  を指定します。
「master」ブランチで、「release*」のタグが含まれていたときにパイプラインが開始するようにトリガーします。
![スクリーンショット 2023-12-06 14.07.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/84aa92f6-5de4-f9ec-360d-19331df1f1bb.png)

次の通り、ビルドステージで 適当に CodeBuild を準備しておきます。
![スクリーンショット 2023-12-06 14.11.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/4c9cc57d-37c7-d00b-7c35-d720332ae29c.png)

ではテストです。次の通り、タグを付与して push し動作を確認してみます。

```
git commit -m "MyGitHubTagsPipeline"

    [master ba5a930] MyGitHubTagsPipeline

git tag release-1 ba5a930 

git push　release-1
```

次の通り、パイプラインが開始されたことが確認できました。
![スクリーンショット 2023-12-06 14.18.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/2831f5a1-1342-1e1f-98f7-eea7f9ce8f7b.png)