在CI/CD中使用文件规格来完全控制您的工件
如何在JFrog Artifactory中管理您的工件?是时候熟悉一下了文件规格.
文件规格允许您通过简单的配置指定要上传和从Artifactory下载的文件。只有2个必须的字段,source(称为pattern)和target,您可以根据您定义的规范找到您需要的工件。高级用户还可以从regex和AQL的强大功能中受益,在上传和下载工件时定义文件源模式和目标。你也可以使用占位符一旦下载或上传工件,确定工件的名称。可能性是无限的。
更棒的是,您实际上可以定义一个文件规范,可以与您最喜欢的CI服务器一起使用,包括詹金斯,TeamCity而且竹子.您甚至可以使用云CI服务器的文件规格,例如Travis-CI和Circle CI,使用JFrog CLI!
让我们从一些实现这些功能的有趣示例开始。
詹金斯
文件规范支持通用的和流水线Jenkins工作使用Jenkins Artifactory插件.下面是一个示例脚本,展示如何在Jenkins管道作业中将文件上传到Artifactory。
注意下面pattern字段中定义的regex指定从" jenkins-pipeline-examples/resources/ "目录中上传所有匹配" .*A[A-z]tifactory.*.zip "或" .*(A| A)rtifac2022世界杯阿根廷预选赛赛程tory.*.zip "模式的文件。
例如:“ArtifactoryPipelineNoProps.zip”和“ArtifactoryPipelineNoProps.zip”。
def uploadSpec = """{"files": [{"pattern": "jenkins-pipeline-examples/res2022世界杯阿根廷预选赛赛程ources/.*A[A-z]tifactory.*.zip", "target": "libs-snapshot-local/", "regexp": "true"}, {"pattern": "jenkins-pipeline-examples/resources/.*(A| A)rtifactory.*.zip", "target": "libs-snapshot-local/", "regexp": "true"}]}""" " server. "上传规范:uploadSpec, buildInfo: buildInfo
在通用作业中,有两种方法来定义文件规范:从文件加载规范,或将其保存为作业配置中的文本。
在文件中定义文件规范
要指定一个JSON文件作为文件规范源,只需添加相对于工作空间的文件路径。在下面的例子中,“props-download.”Json”将被使用。
在作业配置中定义文件规范
TeamCity
的TeamCity Artifactory插件还允许您在泛型运行类型中指定下载和上传规范源。就像在Jenkins中一样,你也可以在“文件”和“作业配置”之间进行选择。可使用的通用运行类型包括命令行、Powershell、MSbuild和更多的.
竹子
有两种不同的工作,部署而且解决,用于从Artifactory上传和下载文件竹Artifactory插件.与前面的CI服务器一样,这里也提供了选择文件或作业配置作为规范源的选项。下面是每个例子。
要将文件上传到Artifactory,创建一个“Artifactory generic Deploy”任务。填写详细信息,并选择“上传方式”下的“规格”选项。
要从Artifactory下载文件,分别创建一个“Artifactory Generic Resolve”任务。
JFrog CLI
JFrog CLI支持文件规格下载,上传,搜索,移动,复制而且删除命令。只需使用规范创建一个JSON文件,并使用-spec选项将其附加到命令。例如:
- Jfrog rt u -spec /path/to/spec/upload_spec.json。
- Jfrog rt dl -spec /path/to/spec/download_spec.json。
- Jfrog rt mv -spec /path/to/spec/move_spec.json。
- Jfrog rt cp -spec /path/to/spec/copy_spec.json。
- Jfrog rt del -spec /path/to/spec/delete_spec.json。
- Jfrog rt的-spec /path/to/specs/search_spec.json。
总结所有的伟大
现在轮到您利用这个强大的File Spec特性了,并受益于一种简单而通用的管理文件的方法。先用我们的例子,然后将其用于所有您喜欢的CI服务器。






