[JAWS-UG CLI] CodeBuild: #5 プロジェクトの削除


前提条件
========


CodeBuildへの権限
-----------------

CodeBuildに対してフル権限があること。


AWS CLIのバージョン
-------------------

以下のバージョンで動作確認済

- AWS CLI 1.11.57

```bash:コマンド:
aws --version
```

結果(例):

      aws-cli/1.11.70 Python/2.7.12 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.5.33

バージョンが古い場合は最新版に更新しましょう。

```bash:コマンド:
sudo -H pip install -U awscli
```


0. 準備
=======

まず変数の確認をします。

```bash:変数の確認:
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}

ETX
```

結果(例):

      AWS_DEFAULT_PROFILE: (0.1) <CodeBuildにフル権限のあるプロファイル>
      AWS_DEFAULT_REGION:  (0.2) ap-northeast-1

変数が入っていない、適切でない場合は、それぞれの手順番号について作業を
行います。


0.1. プロファイルの指定
-----------------------

プロファイルの一覧を確認します。

```bash:コマンド:
cat ~/.aws/credentials \
       | grep '\[' \
       | sed 's/\[//g' | sed 's/\]//g'
```

結果(例):

      iamFull-prjz-mbpr13
      <CodeBuildにフル権限のあるプロファイル>

```bash:変数の設定:
export AWS_DEFAULT_PROFILE='<CodeBuildにフル権限のあるプロファイル>'
```


0.2. リージョンの指定
---------------------

```bash:変数の設定:
export AWS_DEFAULT_REGION='ap-northeast-1'
```


最終確認
--------------

```bash:変数の確認:
cat << ETX

        AWS_DEFAULT_PROFILE: (0.1) ${AWS_DEFAULT_PROFILE}
        AWS_DEFAULT_REGION:  (0.2) ${AWS_DEFAULT_REGION}

ETX
```

結果(例):

      AWS_DEFAULT_PROFILE: (0.1) <CodeBuildにフル権限のあるプロファイル>
      AWS_DEFAULT_REGION:  (0.2) ap-northeast-1


1. 事前作業
===========


1.1. プロジェクト名の指定
-------------------------

```bash:変数の設定:
CODEB_PROJECT_NAME='codebuild-demo-java-20170417'
```

```bash:変数の設定:
ARRAY_CODEB_PROJECT_NAMES="${CODEB_PROJECT_NAME}" \
        && echo ${ARRAY_CODEB_PROJECT_NAMES}
```

```bash:コマンド:
aws codebuild batch-get-projects \
        --names "${ARRAY_CODEB_PROJECT_NAMES}"
```

結果(例):

      {
          "projectsNotFound": [],
          "projects": [
              {
                  "name": "codebuild-demo-java-20170417",
                  "serviceRole": "arn:aws:iam::XXXXXXXXXXXX:role/hoge",
                  "tags": [],
                  "artifacts": {
                      "namespaceType": "NONE",
                      "packaging": "NONE",
                      "type": "S3 ",
                      "location": "artifact-20170417-XXXXXXXXXXXX",
                      "name": "codebuild-demo-java-20170417"
                  },
                  "lastModified": 14xxxxxxxx.000,
                  "timeoutInMinutes": 60,
                  "created": 14xxxxxxxx.000,
                  "environment": {
                      "computeType": "BUILD_GENERAL1_SMALL",
                      "image": "aws/codebuild/java:openjdk-8",
                      "type": "LINUX_CONTAINER",
                      "environmentVariables": []
                  },
                  "source": {
                      "type": "S3",
                      "location": "src-20170417-XXXXXXXXXXXX/MessageUtil.zip"
                  },
                  "encryptionKey": "arn:aws:kms:ap-northeast-1:XXXXXXXXXXXX:alias/aws/s3",
                  "arn": "arn:aws:codebuild:ap-northeast-1:XXXXXXXXXXXX:project/codebuild-demo-java-20170417",
                  "description": "codebuild demo (java)"
              }
          ]
      }


2. プロジェクトの削除
=====================

```bash:変数の確認:
cat << ETX

        CODEB_PROJECT_NAME: ${CODEB_PROJECT_NAME}

ETX
```

```bash:コマンド:
aws codebuild delete-project \
        --name ${CODEB_PROJECT_NAME}
```

結果(例):

      (戻り値なし)


3. 事後作業
===========

同名のプロジェクトの不存在確認します。

```bash:コマンド:
aws codebuild batch-get-projects \
        --names "${ARRAY_CODEB_PROJECT_NAMES}"
```

結果(例):

      {
        "projectsNotFound": [
          "codebuild-demo-java-20170417"
        ],
        "projects": []
      }


完了
====