AWS CodePipeline,构建失败并出现YAML_FILE_ERROR M错误。

14

我刚开始接触AWS CodePipeline,并且没有使用过任何类似Jenkins等持续集成工具的经验。我已经创建了一个新的AWS CodePipeline,其中AWS CodeCommit(代码仓库)-> CodeBuild(非docker环境,环境为NodeJS 7)-> AWS CodeDeploy。 所有内容都在AWS上运行。这是一个Angular2项目,最终部署在EC2实例(Windows Server 2008)上。从本地计算机,我能够通过活动IAM用户(Git访问)将我的代码提交到AWS CodeCommit,然后我可以看到CodePipleline开始运行,其中Source步骤良好(绿色),但下一步即构建失败(红色)。当我单击其详细信息时,我可以查看以下错误日志:

https://forums.aws.amazon.com/ 2016/12/23 18:21:16 等待代理 https://forums.aws.amazon.com/ 2016/12/23 18:21:36 阶段为DOWNLOAD_SOURCE https://forums.aws.amazon.com/ 2016/12/23 18:21:38 阶段完成:DOWNLOAD_SOURCE 成功: false https://forums.aws.amazon.com/ 2016/12/23 18:21:38 阶段上下文状态代码:YAML_FILE_ERROR Message: YAML文件不存在 https://forums.aws.amazon.com/ 2016/12/23 18:21:38 运行时错误(YAML文件不存在)

有人能指导我如何解决这个错误吗?我不知道这个YAML文件是什么意思。我尝试谷歌搜索,但没有找到与我的NodeJS Angular项目相关的适当结果。

谢谢, Vinod Kumar


对我来说,phasesartifacts之间没有换行符。如果它们之间没有换行符,你也会遇到这个错误。 - Jeremy
3个回答

18

2
通常用户会添加buildspec.yml文件,但在执行CodeBuild之前忘记将其推送到存储库中。请使用git push命令将您的buildspec.yml文件推送到存储库中,然后您就可以继续进行了。另外,请注意,今天它必须被命名为buildspec.yml而不是buildspec.yaml。 - Eric Nord
2
@EricNord 我已经将 buildspec.yml 推送到项目的根目录中,但仍然遇到了这个错误 :( 现在正在进行故障排除。 - Elaine
1
@Elaine 希望你已经找到了。如果没有,我刚遇到了类似的问题,显然 Codebuild 对空格/制表符非常挑剔。我将所有制表符转换为空格,并删除了空行上的空格。希望这可以帮助到你。 - Jevado

0

已经回答过了,但是为了防止其他人遇到这个问题,我再补充一下。

Yaml文件通常与.yaml或.yml扩展名相关联。

代码构建似乎要寻找buildspec.yml,并且无法看到.yaml文件。


这取决于您部署的位置。如果我没记错的话,.yaml 用于 Lambda,而其他所有内容都使用 .yml。 - Alex Barker

0

之前

版本:0.2

phases:
  install:
    runtime-versions:
      java: openjdk8
    commands:
      - echo intall
  pre_build:
    commands:
      - echo pre_build
  build:
    commands:
      - mvn package
      - echo build
  post_build:
    commands:
      - echo post_build

 artifacts:     
   files:
    - target/spring-boot-rest-api-h2-aws-continious-deloy-0.0.1-SNAPSHOT.jar

缩进后

版本:0.2

phases:
  install:
    runtime-versions:
      java: openjdk8
    commands:
      - echo intall
  pre_build:
    commands:
      - echo pre_build
  build:
    commands:
      - mvn package
      - echo build
  post_build:
    commands:
      - echo post_build

artifacts:     
  files:
    - target/spring-boot-rest-api-h2-aws-continious-deloy-0.0.1-SNAPSHOT.jar

2
我花了很长时间(而且我必须先编辑你的答案)才发现缩进中有一个字符已经改变。如果您尝试解释您的答案以及它如何解决OP的问题,情况可能会有所不同。 - David Buck

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接