次の手順を使用して、複数の入力と出力を持つビルドプロジェクトを作成します。
複数の入力と出力を持つビルドプロジェクトを作成するには
-
ソースを 1 つ以上の S3 バケットにアップロードするか、1 つ以上の CodeCommit、GitHub、GitHub Enterprise Server、または Bitbucket リポジトリにアップロードします。
-
プライマリソースを選択します。これは、CodeBuild が buildspec ファイルを探して実行するソースです。
-
ビルドプロジェクトを作成します。詳細については、「AWS CodeBuild でのビルドプロジェクトの作成」を参照してください。
-
ビルドプロジェクトを作成し、ビルドを実行して、ビルドに関する情報を取得します。
-
AWS CLI を使用してビルドプロジェクトを作成する場合、
create-project
コマンドへの JSON 形式の入力は次のようになります。{ "name": "sample-project", "source": { "type": "S3", "location": "
<bucket/sample.zip>
" }, "secondarySources": [ { "type": "CODECOMMIT", "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo", "sourceIdentifier": "source1" }, { "type": "GITHUB", "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin", "sourceIdentifier": "source2" } ], "secondaryArtifacts": [ss { "type": "S3", "location": "<output-bucket>
", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "<other-output-bucket>
", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
プライマリソースは、source
属性で定義されます。他のすべてのソースはセカンダリソースと呼ばれ、secondarySources
の下に表示されます。すべてのセカンダリソースは、独自のディレクトリにインストールされます。このディレクトリは、組み込みの環境変数 CODEBUILD_SRC_DIR_
に保存されます。詳細については、「ビルド環境の環境変数」を参照してください。sourceIdentifer
secondaryArtifacts
属性には、アーティファクトの定義のリストが含まれます。これらのアーティファクトは、secondary-artifacts
ブロック内にネストされている buildspec ファイルの artifacts
ブロックを使用します。
buildspec ファイル内のセカンダリアーティファクトは、アーティファクトと同じ構造を持ち、アーティファクト識別子で区切られます。
注記
CodeBuild API で、セカンダリアーティファクトの artifactIdentifier
は、CreateProject
および UpdateProject
で必須の属性です。セカンダリアーティファクトを参照するために使用される必要があります。
前述の JSON 形式の入力を使用すると、プロジェクトの buildspec ファイルは次のようになります。
version: 0.2
phases:
install:
runtime-versions:
java: openjdk11
build:
commands:
- cd $CODEBUILD_SRC_DIR_source1
- touch file1
- cd $CODEBUILD_SRC_DIR_source2
- touch file2
artifacts:
files:
- '**.*'
secondary-artifacts:
artifact1:
base-directory: $CODEBUILD_SRC_DIR_source1
files:
- file1
artifact2:
base-directory: $CODEBUILD_SRC_DIR_source2
files:
- file2
sourceVersion
の StartBuild
属性で API を使用して、プライマリソースのバージョンを上書きすることができます。1 つまたは複数のセカンダリソースバージョンを上書きするには、secondarySourceVersionOverride
属性を使用します。
start-build
の AWS CLI コマンドへの JSON 形式の入力は次のようになります。
{
"projectName": "sample-project",
"secondarySourcesVersionOverride": [
{
"sourceIdentifier": "source1",
"sourceVersion": "codecommit-branch"
},
{
"sourceIdentifier": "source2",
"sourceVersion": "github-branch"
},
]
}