在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”将被使用。

Jenkins示例

在作业配置中定义文件规范

下载规范源文件Jenkins示例

TeamCity

TeamCity Artifactory插件还允许您在泛型运行类型中指定下载和上传规范源。就像在Jenkins中一样,你也可以在“文件”和“作业配置”之间进行选择。可使用的通用运行类型包括命令行、Powershell、MSbuild和更多的

TeamCity Artifactory插件

竹子

有两种不同的工作,部署而且解决,用于从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服务器。