jenkins - 如何将 .deb 文件从 jenkins Pipeline 发送到 Spinnaker Pipeline?
问题描述
我有一个詹金斯管道,它产生一个构建工件,它是一个deb
文件。
我打算使用该 deb 文件来填写 Bake Configuration Phase 中的 Package 选项。
它不起作用并导致
我该怎么做呢?
我想我需要从 Spinnaker 管道的构建触发器(Jenkins 管道)中传输工件,但我不明白该怎么做。
这有什么用吗?为了发送文件,我无法理解他们想让我做什么。
任何帮助表示赞赏。谢谢。
解决方案
到目前为止你所做的看起来是正确的,所以我们需要调试它失败的原因。您必须查看失败的执行源(按“源”链接)。这个 json 结构是执行上下文(你可能想在浏览器中安装一个 json 格式化插件或其他东西来阅读它)。导航到trigger.artifacts
那里寻找工件。如果你找到它,请在此处发布结果。我认为问题可能出在 deb 文件的名称上。它应该被命名为simplenodeappinstaller_1.0-0_amd64.deb
. 一个简单的解决方案是添加 jenkins 内部版本号或时间戳作为版本号。
您还可以尝试激活工件装饰器(设置artifact.decorator.enabled: true
在igor-local.yml
. 这将导致 Igor 以更明智的方式解析 deb 和 rpm 文件,恕我直言。有关更多信息,请参见下文。
另一件事是 Jenkins 有时会将所有测试结果和其他内容放入工件列表中,我认为默认返回的工件最大数量为 20。但是,这可以在密钥下进行配置BuildArtifactFilter.maxArtifacts
(请参阅https://github.com/spinnaker/ igor/blob/master/igor-web/src/main/java/com/netflix/spinnaker/igor/build/BuildArtifactFilter.java)。阅读代码,似乎 deb 文件应该已经优先于其他类型的工件,所以我真的不认为这是问题所在。
装饰底漆
启用工件装饰器将转换此工件:
fileName: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
displayPath: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
relativePath: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
进入
fileName: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
displayPath: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
relativePath: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
reference: "openmotif22-libs-2.2.4-192.1.3.x86_64.rpm"
name: "openmotif22-libs"
type: "rpm"
version: "2.2.4-192.1.3.x86_64"
decorated: "true"
内置装饰器支持deb
and rpm
,但可以使用如下配置对其进行扩展:
artifact:
# This is a feature toggle for decoration of artifacts.
decorator:
enabled: true
fileDecorators:
- type: docker/image
decoratorRegex: '(.+):(.+)'
identifierRegex: '(.+\/.+:.+)'
推荐阅读
- codeigniter-3 - 使用 foreach 插入查询
- ios - UIApplicationMain 和 UIApplication 有什么区别
- python-3.x - 如何在 for 循环中使用 groupby 组
- swift - 如何从应用程序中删除用户默认值?
- r - 循环 dplyr 并创建多个数据框
- c++ - 在c ++中将csv读取的十六进制字符串值转换为uint8_t
- android - 录制视频时查询支持的比特率
- php - nginx 通用重写规则
- java - 如何在搜索视图中拥有多个按钮?
- google-cloud-platform - cloudrun(或 knative)上的简单 HelloWorld 应用程序似乎太慢了