I had created a codebuild to build my project based on the changes in codecommit. This is the batch-get-projects
command details for it
{
"projects": [
{
"name": "MultiRepBuild",
"arn": "arn:aws:codebuild:us-east-1:100000xxx0x:project/MultiRepBui
ld",
"source": {
"type": "CODECOMMIT",
"location": "https://git-codecommit.us-east-1.amazonaws.com/v1/r
epos/PythonRep",
"gitCloneDepth": 1,
"insecureSsl": false
},
"secondarySources": [],
"artifacts": {
"type": "S3",
"location": "testxxxthe-codebuild",
"path": "",
"namespaceType": "NONE",
"name": "Lambda",
"packaging": "ZIP",
"overrideArtifactName": false,
"encryptionDisabled": false
},
"secondaryArtifacts": [],
"cache": {
"type": "NO_CACHE"
},
"environment": {
"type": "LINUX_CONTAINER",
"image": "aws/codebuild/python:3.6.5",
"computeType": "BUILD_GENERAL1_SMALL",
"environmentVariables": [],
"privilegedMode": false
},
"serviceRole": "arn:aws:iam::xxxxxxxx:role/service-role/codebuil
d-MultiRepBuild-service-role",
"timeoutInMinutes": 60,
"encryptionKey": "arn:aws:kms:us-east-1:xxxxxx:alias/aws/s3",
"tags": [],
"created": 1542607679.567,
"lastModified": 1542611632.345,
"badge": {
"badgeEnabled": false
}
}
],
"projectsNotFound": []
}
This codebuild will create a buildartifact with specified name Lambda
and keep it in specified bucket in zip format.
But when i integrate same codebuild with the Codepipeline it is overriding the bucketname as per this answer. Even i try to change the bucketname with cloudformation but how can i add the parameters that are defined in the artifacts section(i.e.name
) from the above snippet, because i will point this name
as an S3KeyName
in my cloudformation template.
I tried to change in the name in below file which i got through by running aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
command
{
"pipeline": {
"name": "MultiBuild",
"roleArn": "arn:aws:iam::xxxxxxxxxxx:role/service-role/AWSCodePipelineServiceRole-us-east-1-MultiBuild",
"artifactStore": {
"type": "S3",
"location": "codepipeline-us-east-1-xxxxx"
},
"stages": [
{
"name": "Source",
"actions": [
{
"name": "Source",
"actionTypeId": {
"category": "Source",
"owner": "AWS",
"provider": "CodeCommit",
"version": "1"
},
"runOrder": 1,
"configuration": {
"BranchName": "master",
"PollForSourceChanges": "false",
"RepositoryName": "PythonRep"
},
"outputArtifacts": [
{
"name": "SourceArtifact"
}
],
"inputArtifacts": []
}
]
},
{
"name": "Build",
"actions": [
{
"name": "Build",
"actionTypeId": {
"category": "Build",
"owner": "AWS",
"provider": "CodeBuild",
"version": "1"
},
"runOrder": 1,
"configuration": {
"ProjectName": "MultiRepBuild"
},
"outputArtifacts": [
{
"name": "Lambda" -->Here
}
],
"inputArtifacts": [
{
"name": "SourceArtifact"
}
]
}
]
}
],
"version": 1
}
}
This is creating a folder with name Lambda
rather than creating a file. The file structure is like this
---MultiBuild
|
|
-->Lambda
|
|
abcd.zip
-->SourceArti
|
|
efgh.zip