jenkins - 无法使用文件规范中具有“build”属性的工件插件或 jfrog cli 下载最新工件
问题描述
我的人工 [通用] 回购结构是这样的:
org/component/baseRev/branch/
在 jenkins 中运行的构建作业会生成一个 zip 工件,该工件使用带有文件名的工件插件上传到此路径:component-fileItegRev.zip,其中 fileItegRev 是构建号。所以我最终在我的回购中得到了这样的东西:
.../branch/
.....component-120.zip
.....component-121.zip
.....component-122.zip
.....component-123.zip
然后,另一个管道尝试使用 jenkins 中的 artifactory 插件和如下文件规范从上述文件夹下载最新的工件:
{
"files": [
{
"pattern": "org/component/baseRev/branch/",
"target": "Download\\",
"build": "buildName",
"explode": "true",
"flat" : "true"
}
]
}
Artifactory 中的文件规范文档指出,如果我指定没有构建号的构建名称,那么最新的将用于提取工件。这没有发生。
我验证了如果我以以下形式指定构建属性:
"build": "buildName/123"
它会在文件名中找到并下载该版本的 zip。我也尝试明确指定
"build": "buildName/LATEST"
这也行不通。我究竟做错了什么?
我还尝试使用此规范文件使用 jfrog cli 下载命令,但也找不到最新的。我能够使用 jfrog cli 找到最新文件
"sortBy": ["created"],
"sortOrder": "desc",
"limit": 1
规范中的参数(如此处所述),但我仍然想知道为什么文件规范的“构建”属性不像他们的文档中描述的那样工作。
解决方案
以防万一其他人遇到这种情况。我们发现文件规范中的构建属性一直正常工作。问题是,当我们尝试将分支构建发布到 Artifactory 时,它的构建信息在此过程中被破坏了。一旦我们清除了 Artifactory 中此分支的所有构建信息并重新构建,我们就可以使用build_name/LATEST选项提取最新的构建。
推荐阅读
- laravel - 从域访问时未发送 Sanctum CSRF Cookie
- async-await - JS:带有 await 语句的异步函数导致未定义的承诺。我究竟做错了什么?简单的例子
- python - Python中是否有特定于属性的方法/接口?
- php - Laravel 工匠版
- typescript - 组合来自多个 RxJS 可观察对象的数据的更好方法
- amazon-web-services - Backblaze S3 兼容 API - 预签名 URL - 节点 AWS 开发工具包不起作用
- python - 如何在不出现 415 错误的情况下向 API 发送 PUT 请求
- rust - 如果 main 返回 Err,Rust 程序会返回什么退出代码
- loops - rust 借用检查看起来很聪明,它可以检查和扁平化循环的读写。但我怎样才能绕过它?
- excel - Characters 对象的更快替代方案