AWS CodePipeline Doesn't upload artifacts to A

2019-05-06 23:00发布

问题:

As an effort to automate the (Android) build and test process, I configured an AWS code pipeline that will 1st get the code from GitHub and trigger a build (via aws codebuild) Build is shown as completed successfully but the artifacts (apk file) generated as a result of the build process isn't uploaded to the s3 bucket (public bucket). The logs clearly say the upload is successful as seen in the screenshots attached The codepipeline as well shows everything is successful as attached

However, if I run aws codebuild project directly from the aws codebuild screen, it does upload the artifact successfully to the s3 bucket!

I tried changing the bucket permissions to public/non public, etc. So far no success

回答1:

CodePipeline will override the CodeBuild's artifact bucket, I guess it's moving the artifacts to its own Bucket. you can see the CodePipeline's bucket by running the below command.

codepipeline get-pipeline --name PipelineName--query pipeline.[artifactStore]

[
    {
        "type": "S3",
        "location": "codepipeline-us-east-1-xxxxxxxx"
    }
]

If you are using CloudFormation to create the pipeline you configure the bucket using ArtifactStore.

Update ArtifactStore in CodePipeline: Currently, I don't see a way to update the ArtifactStore through Console but it can be done with update-pipeline command.

Get the pipleline details:

aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json

Edit the pipeline to update the S3 Bucket in artifactStore and then run the command.

aws codepipeline update-pipeline --cli-input-json file://pipeline.json


回答2:

I had this same problem, couldn't see the MyAppBuild folder in S3 that was meant to hold CodeBuild artifacts. Logged out of the web console and back in again and the folder was now visible.