【问题标题】:File [imagedefinitions.json] does not exist in artifact [testart] - AWS CodePipeline - Jenkins工件 [testart] 中不存在文件 [imagedefinitions.json] - AWS CodePipeline - Jenkins
【发布时间】:2019-06-28 16:06:41
【问题描述】:

我正在使用 Jenkins 作为 AWS 代码管道的管道 构建提供者。 Jenkins 有一个插件(AWS CodePipeline 插件)来连接/轮询 与管道。

管道的流程:

来源 - CodeCommit 构建 - 詹金斯 部署 - CloudFormation

Jenkins 生成一个输出工件(teststart,其中包含 imagedefinitions.json),使用它上传到 s3 插件。出于某种原因,CloudFormation 能够找到工件,但无法找到 imagedefinitions.json 文件。

我在部署阶段遇到的错误:

“文件(imagedefinitions.json)在工件(testart)中不存在”

PS:管道拥有访问 s3 的完全权限。

任何帮助表示赞赏:)

【问题讨论】:

  • 工件是否只是压缩的imagedefinitions.json 文件?扁平化,没有任何目录结构?
  • @MilanCermak 它只是文件而不是 zip,也没有目录结构。 Jenkins 用来上传工件的 AWS CodePipeline 插件说 - 如果位置是普通文件:文件将按原样上传(不压缩)。 wiki.jenkins.io/display/JENKINS/AWS+CodePipeline+Plugin

标签: jenkins jenkins-plugins aws-codepipeline


【解决方案1】:

CloudFormation 操作需要一个 zip 文件,因此您应该使用目录而不是文件来配置 Jenkins。

【讨论】:

    【解决方案2】:

    CodePipeline 中的工件是一个压缩目录。您参考此目录中的文件:

    .
    └── JenkinsArtifact
        └── imagedefinitions.json
    

    所以你只需要将imagedefinitions.json 放入一个目录并让Jenkins 压缩它。

    【讨论】:

    • 一个澄清:许多 CodePipeline 操作期望并创建 ZIP 格式的工件,但完全可以添加使用不同容器格式 (GZIP) 或存储任意 blob(例如 JSON)的自定义操作或 Lambda 函数) 作为工件。
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2017-05-28
    • 2022-01-12
    • 2019-06-04
    • 1970-01-01
    相关资源
    最近更新 更多