Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AWS CodePipeline Doesn't upload artifacts to AWS S3

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![here]here The codepipeline as well shows everything is successful as attached here

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

like image 475
ranjjose Avatar asked Mar 15 '18 05:03

ranjjose


People also ask

Where does AWS CodePipeline store input and output artifacts?

CodePipeline integrates with development tools to check for code changes and then build and deploy through all of the stages of the continuous delivery process. Stages use input and output artifacts that are stored in the Amazon S3 artifact bucket you chose when you created the pipeline.

What is the difference between CodeStar and CodePipeline?

CodePipeline builds, tests, and deploys your code every time there is a code change, based on the release process models you define. On the other hand, AWS CodeStar is detailed as "Quickly Develop, Build, and Deploy Applications on AWS".

Does CodePipeline support OpsWorks?

CodePipeline and AWS OpsWorks Stacks integration is not supported for deploying to Chef 11.4 and older stacks. Javascript is disabled or is unavailable in your browser. To use the Amazon Web Services Documentation, Javascript must be enabled. Please refer to your browser's Help pages for instructions.


1 Answers

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
like image 113
Sudharsan Sivasankaran Avatar answered Oct 08 '22 17:10

Sudharsan Sivasankaran