Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

AWS CodeBuild + CodePipeline: "No matching artifact paths found"

Tags:

I am attempting to get CodePipeline to fetch my code from GitHub and build it with CodeBuild. The first (Source) step works fine. But the second (Build) step fails during the "UPLOAD_ARTIFACTS" part. Here are the relevant log statements:

[Container] 2017/01/12 17:21:31 Assembling file list [Container] 2017/01/12 17:21:31 Expanding MyApp [Container] 2017/01/12 17:21:31 Skipping invalid artifact path MyApp [Container] 2017/01/12 17:21:31 Phase complete: UPLOAD_ARTIFACTS Success: false [Container] 2017/01/12 17:21:31 Phase context status code: ARTIFACT_ERROR Message: No matching artifact paths found [Container] 2017/01/12 17:21:31 Runtime error (No matching artifact paths found) 

My app has a buildspec.yml in its root folder. It looks like:

version: 0.1  phases:   build:     commands:       - echo `$BUILD_COMMAND`  artifacts:   discard-paths: yes   files:     - MyApp 

It would appear that the "MyApp" in my buildspec.yml should be something different, but I'm pouring through all of the AWS docs to no avail (what else is new?). How can I get it to upload the artifact correctly?

like image 366
John D. Avatar asked Jan 13 '17 02:01

John D.


1 Answers

The artifacts should refer to files downloaded from your Source action or generated as part of the Build action in CodePipeline. For example, this is from a buildspec.yml I wrote:

artifacts:   files:     - appspec.yml     - target/SampleMavenTomcatApp.war     - scripts/* 

When I see that you used MyApp in your artifacts section, it makes me think you're referring to the OutputArtifacts of the Source action of CodePipeline. Instead, you need to refer to the files it downloads and stores there (i.e. S3) and/or it generates and stores there.

You can find a sample of a CloudFormation template that uses CodePipeline, CodeBuild, CodeDeploy, and CodeCommit here: https://github.com/stelligent/aws-codedeploy-sample-tomcat/blob/master/codebuild-cpl-cd-cc.json The buildspec.yml is in the same forked repo.

like image 79
Paul Duvall Avatar answered Sep 18 '22 06:09

Paul Duvall