当前位置:  开发笔记 > 前端 > 正文

AWS CodeBuild + CodePipeline:"找不到匹配的工件路径"

如何解决《AWSCodeBuild+CodePipeline:"找不到匹配的工件路径"》经验,为你挑选了1个好方法。

我试图让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文档无济于事(还有什么是新的?).如何让它正确上传工件?



1> Paul Duvall..:

工件应引用从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是在同一个叉形回购.


对不起,我觉得我的S3引用很困惑.为了澄清,在构建规范的工件/文件部分,您将列出您用于构建源文件库的文件(即GitHub中的文件 - 而不是从CodePipeline生成的随机生成的名称)和任何相关文件从您的构建过程生成.根据所提供的信息,您不清楚正在构建的语言/平台.
推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有