CodePipelineの利用方法を確認します。GitHubリポジトリの特定ブランチにマージされたタイミングでパイプライン処理が起動され、デプロイ処理まで自動実行されるように設定してみます。
パイプラインを作成
( CodePipeline )
パイプラインの設定を選択する
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_1_pipeline1.png)
パイプラインを作成する
をクリックします。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_2_pipeline.png)
AWSリソースへのアクセス許可を付与するためのサービスロール
など設定します。
ソースステージを追加する
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_3_code.png)
ECR
S3
など選択できます。今回は GitHub
を選択します。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_5_code.png)
GitHubに接続する
をクリックします。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_4_code.png)
承認するか確認する画面がポップアップで表示されます。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_6_code.png)
承認後、リポジトリ
とブランチ
を選択できます。GitHubウェブフック
を選択すると、指定ブランチにマージされたタイミングでパイプラインが開始されます。
ビルドステージを追加する
( CodeBuild )
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_7_build.png)
まだCodeBuild
のプロジェクトが存在しないので、新規に作成します。プロジェクトを作成する
をクリックします。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_8_build.png)
プロジェクト名など入力します。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_9_build.png)
OS
Runtime
など選択します。今回はRuntimeに Node.js
を選択しました。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_10_build.png)
Buildspecにてビルド処理に利用するfileを指定します。デフォルトで buildspec.yml
です。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_11_build.png)
作成したCodeBuildを指定して、次に
をクリックします。
デプロイステージを追加する
( CodeDeploy )
今回は、事前に作成済みの Elastic Beanstalkの環境
にデプロイされるように設定してみます。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_12_deploy.png)
CloudFormation
Elastic Beanstalk
ECS
S3
などのデプロイ方法を選択できます。今回は Elastic Beanstalk
を選択します。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_13_deploy-1024x624.png)
Elastic Beanstalk
を選択したので、アプリケーション名
環境名
を選択します。
レビュー
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_14_review-1024x873.png)
設定した内容を確認します。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_15_review.png)
問題なければ、パイプラインを作成する
をクリックします。
動作確認
実行失敗
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_16_ng-1024x849.png)
パイプライン作成後、パイプライン処理が開始されました。Buildのフェーズで処理が失敗しています。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_17_ng-1024x756.png)
該当のビルドプロジェクトのログで原因を確認します。YAML file does not exist
と表示されています。まだ buildspec.yml
を作成してないためです。
buildspec.ymlを追加
下記、buildspec.yml
を追加して、該当ブランチにマージします。
version: 0.2
phases:
install:
commands:
- echo "install > commands"
finally:
- echo "install > finally"
pre_build:
commands:
- echo "pre_build > commands"
finally:
- echo "pre_build > finally"
build:
commands:
- echo "build > commands"
finally:
- echo "build > finally"
post_build:
commands:
- echo "post_build > commands"
finally:
- echo "post_build > finally"
artifacts:
files:
- ./**/*
実行成功
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_18_ok-845x1024.png)
今度はBuildフェーズも成功したようです。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_19_ok-953x1024.png)
buildspec.yml
に記述した処理が実行されています。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_20_ok-839x1024.png)
Deployフェーズも成功しました。
![](http://www.wakuwakubank.com/wp-content/uploads/660-aws-codepipeline_21_ok-1024x399.png)
Elastic Beanstalkのアプリケーションバーションを確認します。バージョンラベルに code-pipeline
と記述されていました。