我试图让CodePipeline从GitHub获取我的代码并使用CodeBuild构建它.第一个(源)步骤工作正常.但是第二个(Build)步骤在"UPLOAD_ARTIFACTS"部分失败.以下是相关的日志声明:
[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)
我的应用程序在其根文件夹中有一个buildspec.yml.看起来像:
version: 0.1 phases: build: commands: - echo `$BUILD_COMMAND` artifacts: discard-paths: yes files: - MyApp
似乎我的buildspec.yml中的"MyApp"应该是不同的东西,但我倾注所有的AWS文档无济于事(还有什么是新的?).如何让它正确上传工件?
工件应引用从Source操作下载的文件或作为CodePipeline中的Build操作的一部分生成的文件.例如,这是来自我写的buildspec.yml:
artifacts: files: - appspec.yml - target/SampleMavenTomcatApp.war - scripts/*
当我看到你在工件部分中使用MyApp时,它让我觉得你指的是CodePipeline的Source动作的OutputArtifacts.相反,您需要引用它下载并存储的文件(即S3)和/或它在那里生成和存储.
您可以在此处找到使用CodePipeline,CodeBuild,CodeDeploy和CodeCommit的CloudFormation模板示例:https://github.com/stelligent/aws-codedeploy-sample-tomcat/blob/master/codebuild-cpl-cd-cc以.json的buildspec.yml
是在同一个叉形回购.