云客户?
免费开始>
升级MyJFrog >
云有什么新鲜事>





概述

JFrog带来了持续集成Azure DevOps通过JFrog扩展。

JFrogAzure DevOps扩展支持:

  • 运行您的构建,同时使用JFrog Artifactory作为二进制存储库管理器
  • 通过从构建中捕获构建信息并将其发布到JFrog Artifactory,获得构建的完全可跟踪性
  • 使用JFrog Artifactory管理你的二进制文件生命周期
  • 使用JFrog Xray审计项目并扫描构建
  • 使用JFrog Distribution分发您的工件。

源代码

分机号是GitHub上的一个开源项目你可以自由浏览和分叉。


安装和设置

安装扩展

Azure DevOps的JFrog扩展可以在Visual Studio市场

要安装JFrog扩展,请执行以下步骤:

  • 转到Visual Studio Marketplace并登录到您的帐户
  • 选择JFrog扩展区位于构建和发布部分

  • 在JFrog扩展页面中,单击安装
  • 选择您想要应用扩展的帐户并确认安装。

安装生成代理程序

一般

要运行JFrog任务,构建代理使用三个工具:

  • JFrog CLI:运行所有JFrog任务。
  • Maven提取器:运行JFrog Maven的任务。
  • Gradle Extractor:运行JFrog Gradle的任务。
  • Conan客户端:运行JFrog柯南的任务。

运行Artifactory Conan任务

你探员的任何结构文件。JFrog Conan任务使用Conan客户端。Conan客户端不能使用自动安装或JFrog工具安装程序安装,需要手动安装。要在特工上安装柯南,请阅读安装柯南”下节手动安装

可以使用以下方法之一在构建代理上安装这些工具。

页面内容

自动安装

如果构建代理可以访问internet,那么JFrog CLI以及Maven和Gradle Extractors将在首次需要时自动下载并安装在代理上。

JFrog工具安装程序

如果您的代理没有internet访问,您可以配置管道从JFrog Artifactory实例下载JFrog CLI和Maven Extractor,该实例被配置为代理下载存储库。

  • 添加JFrog工具安装程序任务到您的构建或发布管道中。
  • 选择您配置的Artifactory服务。
  • 选择jfrog-cli-remote作为目标存储库下载JFrog命令行。
    如果您的管道使用JFrog MavenJFrog Gradle任务,选择提取器作为下载Maven Extractor的存储库。


- task: JFrogToolsInstaller@1 inputs: artifactoryConnection: 'jfrog artifactory' cliInstallationRepo: 'jfrog-cli-remote' installextractor: true extractorsInstallationRepo: 'extractors'


手动安装

安装JFrog CLI

扩展运行JFrog CLI在后台运行它的许多操作。扩展在第一次需要时自动下载并安装构建代理上的JFrog CLI。但是,如果您的构建代理无法访问internet,那么在尝试下载JFrog CLI时,构建将失败,您需要手动下载和安装它。

在没有上网的座席上安装JFrog CLI命令行。

  1. 在代理上创建目录结构当前文件系统:$ (Agent.ToolsDirectory) / _jf / /
  2. 下载最新的JFrog CLI版本在这里.请务必下载与您的代理操作系统相匹配的可执行文件。请务必下载摩根富林明JFrog CLI的可执行文件,而不是遗留文件jfrog可执行文件。
  3. 复制下载的摩根富林明的可执行文件当前的目录。
安装Maven提取器

触发JFrog Maven任务完成后,JFrog CLI自动将Maven Extractor jar下载到构建代理第一次是必要的。但是,如果生成代理无法访问internet,则在尝试下载文件时生成将失败。因此,您需要手动下载和安装它。

在没有互联网接入的代理上安装Maven Extractor jar:

  1. 在代理的文件系统上创建目录结构:$ (Agent.ToolsDirectory)/ _jf / .jfrog / / maven的依赖关系2.28.6
  2. 下载build-info-extractor-maven3-2.28.6-uber.jar并将其放在您创建的“maven”目录中。
安装Gradle Extractor

触发JFrog Gradle任务,JFrog CLI自动下载Gradle Extractor jar到构建代理第一次是必要的。但是,如果生成代理无法访问internet,则在尝试下载文件时生成将失败。因此,您需要手动下载和安装它。

在没有互联网接入的代理上安装Gradle Extractor jar:

  1. 在代理的文件系统上创建目录结构:$ (Agent.ToolsDirectory)/ / gradle / 4.24.12 _jf / .jfrog /依赖关系
  2. 下载build-info-extractor-gradle-4.24.12-uber.jar把它放在你创建的“gradle”目录中。
安装柯南

要使生成代理能够运行conan生成,请执行以下操作:

  1. 按以下步骤访问代理并安装conan这些步骤
  2. 确认conan可执行文件在运行代理上的构建的用户的Path环境变量中是可用的。

使用TFS 2015

先决条件

Node.JS版本8及以上

构建代理需要使用Node.JS版本8及更高版本。检查构建代理上运行的Node.JS的哪个版本:

  1. 导航到工人\ \处理器节点文件夹位于agent主目录下。
  2. 从终端运行节点- v


在构建代理上升级Node.JS:

  • 文件中所需版本的node.exe文件替换代理上现有的node.exe文件工人\ \处理器节点文件夹下的代理主页。

配置业务连接

要允许JFrog任务与JFrog环境一起工作,您需要在Azure DevOps中配置以下服务连接。

服务连接 由任务使用

  • JFrog CLI V2

  • JFrog工具安装程序
  • JFrog通用工件
  • JFrog Nuget
  • JFrog .NET Core
  • JFrog npm
  • JFrog皮普
  • JFrog Maven
  • JFrog Gradle
  • JFrog去
  • JFrog柯南
  • JFrog收集构建问题
  • JFrog Disacrd构建
  • JFrog构建推广
  • 发布构建信息

  • JFrog审计
  • JFrog构建扫描

  • JFrog分布


不使用公共CA(证书颁发机构)?

如果您没有使用公共CA(证书颁发机构)颁发用于连接到JFrog实例域的SSL证书,则本节与您相关。您可能没有使用公共CA,因为您正在使用自签名证书,或者您正在内部运行自己的PKI服务(通常使用Microsoft CA)。

在这种情况下,您需要为JFrog CLI提供这些证书,大多数JFrog任务都使用JFrog CLI。要使JFrog CLI可以使用证书,您需要将它们放在安全/certs目录中,该目录位于JFrog CLI的主目录下。主目录的默认位置为(Agent.ToolsDirectory) / _jf /美元

阅读更多这方面的内容JFrog CLI

不能访问你的JFrog实例?

出于安全考虑,JFrog SaaS服务只支持TLS 1.2。因为不是所有TFS版本都支持TLS 1.2,所以您可能需要在TFS上启用TLS 1.2。

在TFS上启用TLS 1.2。
1.创建一个文件并命名为:Microsoft.PowerShell_profile.ps1
2.在文件中添加以下行:

【净。ServicePointManager]::SecurityProtocol = [Net.]SecurityProtocolType]:: Tls12

3.将文件放在TFS机器上的以下位置:C:\Users\<用户名>\ \ WindowsPowerShell文档

确保与运行TFS和构建代理的用户的名称匹配。

管理通用工件

JFrog通用工件task支持JFrog Artifactory的以下操作:

  • 上传工件到Artifactory
  • 从Artifactory下载工件
  • 在Artifactory中复制工件
  • 在Artifactory移动工件
  • 在Artifactory中删除工件
  • 在Artifactory中设置工件的属性
  • 从Artifactory中的构件中删除属性

任务触发器JFrog CLI执行这些操作使用文件规格.当任务用于上传和下载工件时,还可以配置它来捕获构建信息,这些信息稍后可以使用发布构建信息的任务。

配置任务时,需要完成以下操作:

  1. 选择您配置的JFrogArtifactory V2服务连接。
  2. 指定是通过任务UI定义文件规范,还是让任务从文件中读取规范。
  3. 设置文件规范内容或文件规范的路径。
  4. 设置其他任务选项。
  5. 检查先进的部分的其他选项。

—task: JFrogGenericArtifacts@1 input: command: 'Upload' connection: 'jfrog artifactory' specSource: 'taskConfiguration' fileSpec: | {"files": [{"pattern": "lib -generic-local/*.zip", "target": "dependencies/files/"}]} collectBuildInfo: true buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' projectKey: 'proj' includeenvars: true failNoOp: true

触发构建

您可以触发以下构建。

触发Maven构建

JFrog Maventask允许触发Maven构建,同时解析依赖关系并从Artifactory和向Artifactory部署工件。这个任务使用已配置的JFrogArtifactory V2服务连接。

该任务还可以配置为捕获构建信息,并将下载和上传的构件存储为构建依赖项和构建构件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。

您还可以选择过滤一些将部署到Artifactory的Maven工件。您可以通过定义一个或多个包含模式来实现这一点。您还可以定义一个或多个排除模式。模式可以包括通配符,应该用逗号和后面的空格分隔,如下所示。

- task: JFrogMaven@1 inputs: mavenPomFile: ' pam .xml' goals: 'install' artifactoryResolverService: 'jfrog artifactory' targetresolvereleastrepo: ' libos -release' targetResolveSnapshotRepo: ' libos -snapshot' artifactoryDeployService: 'jfrog artifactory' targetdeployreleaserpo: ' libos -snapshot' targetDeploySnapshotRepo: ' libos -snapshot' filterDeployedArtifacts: true includePatterns: 'artifact-*.jar,artifact-*. jar。pom' excludePatterns: 'artifact-*-test.jar,artifact-*-test. jar。pom' collectBuildInfo: true buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' includeenvars: true

有关Maven存储库的更多信息,请参见Artifactory Maven库


触发Gradle构建

JFrog Gradletask允许触发Gradle构建,同时解析依赖关系和从Artifactory到Artifactory部署工件。这个任务使用已配置的JFrogArtifactory V2服务连接。

该任务还可以配置为捕获构建信息,并将下载和上传的构件存储为构建依赖项和构建构件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。

在幕后,JFrog Gradle任务使用Gradle Artifactory插件与Gradle版本集成。如果你的Gradle脚本已经应用了Gradle Artifactory插件,设置使用Artifactory插件选项,让任务知道它不应该应用Gradle脚本中的插件。

你应该设置artifactoryPublish的Gradle任务之一任务(s)领域artifactoryPublish是一个由Gradle Artifactory Plugin公开的任务,用于部署工件以及向Artifactory发布构建信息。

- task: JFrogGradle@1 input: gradleBuildFile: 'build. 'gradle' tasks: 'artifactoryPublish' artifactoryResolverService: 'jfrog artifactory' sourceRepo: 'gradle-virtual' artifactoryDeployerService: 'jfrog artifactory' targetRepo: 'gradle-local'

触发Npm构建

JFrog Npmtask允许触发npm构建,同时解析npm依赖关系和从Artifactory到Artifactory部署npm包。这个任务使用已配置的JFrogArtifactory V2服务连接。

该任务还可以配置为捕获构建信息,并将上传的文件作为构件存储在其中。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。

- task: JFrogNpm@1 input: command: 'install' artifactoryConnection: 'jfrog artifactory' sourceRepo: 'npm-virtual' collectBuildInfo: true threads: '1' buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' includeenvars: true . true

有关npm存储库的信息,请参见Artifactory npm注册表

触发Nuget和。net核心构建

JFrog Nuget而且JFrog .NET Core任务允许从Artifactory恢复NuGet包。这些任务还允许将NuGet包发布到Artifactory。这个任务使用已配置的JFrogArtifactory V2服务连接。任务可以配置为捕获构建信息。构建信息将恢复的包作为构建依赖项存储,并将上传的包作为构建构件存储。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。

—task: JFrogDotnetCore@1 inputs: command: 'restore' artifactoryConnection: 'jfrog artifactory' targetResolveRepo: 'nuget-virtual' rootPath: '**/*. 'sln' collectBuildInfo: true buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' includeenvars: true

有关Nuget存储库的更多信息,请参见Artifactory NuGet知识库

使用Pip触发Python构建

JFrog皮普任务允许从Artifactory安装Pip包。这个任务使用已配置的JFrogArtifactory V2服务连接。任务也可以配置为捕获构建信息。构建信息将已安装的包作为构建依赖项存储。捕获的构建信息稍后可以使用向Artifactory发布构建信息的任务。

- task: JFrogPip@1 inputs: artifactoryConnection: 'jfrog artifactory' command: 'install' targetResolveRepo: 'pypi' collectBuildInfo: true buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)'

将所有依赖项记录为构建信息的一部分

运行JFrog皮普如果Python环境中已经安装了一些包,则安装的包将不会作为build-info的一部分包含,如果它们最初不是从Artifactory安装的。在这种情况下,将向构建日志中添加一条警告消息。

如何在构建信息中包含所有包?

对象第一次运行该任务禁用本地pip缓存选项选中后,应该重新下载并安装这些包,因此它们将包含在build-info中。还建议在虚拟环境.的虚拟环境设置命令Field允许这样做。

在幕后,该任务使用JFrog CLI作为pip的包装器。JFrog CLI还包括一种缓存机制,它在本地存储依赖项的详细信息,确保它们包含在构建信息中,即使它们已经在本地缓存了。

触发柯南构建

柯南是C和c++的包管理器。

JFrog柯南task允许触发conan构建,同时从Artifactory中的conan存储库中解析conan依赖关系。这个任务使用已配置的JFrogArtifactory V2服务连接。它还允许将conan包发布到Artifactory conan存储库中。该任务还可以配置为捕获构建信息,并将下载和上传的包存储为构建依赖项和工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。

任务支持配置安装添加远程创建而且上传柯南的命令。此外,它还支持自定义选项,允许将任务配置为执行任何conan命令。cona的完整文档可在柯南网站


—task: JFrogConan@1 inputs: conanCommand: 'Install' pathOrReference: '。/' buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)'


有关Conan存储库的更多信息,请参见Artifactory柯南资料库

触发Go构建

JFrog去task允许触发开始构建,同时从Artifactory中的开始存储库中解析开始依赖。这个任务使用已配置的JFrogArtifactory V2服务连接。它还允许将go包发布到Artifactory的go存储库中。该任务还可以配置为捕获构建信息,并将下载和上传的包存储为构建依赖项和工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。

- task: JFrogGo@1 inputs: command: 'build' artifactoryConnection: 'jfrog artifactory' resolutionRepo: 'go' collectBuildInfo: true buildName: '$(build . definitionname)' buildNumber: '$(build . buildNumber)' includeenvars: true workingDirectory: 'golang-exmaple/hello'

有关Go存储库的更多信息,请参见Artifactory Go知识库

收集构建问题

能够看到构建这是发表在Artifactory,并看到所有JIRA问题当涉及到管理关于工件的元数据时,与它相关联的是Artifactory最强大的功能之一构建

JFrog收集构建问题task收集跟踪的项目问题列表(例如,存储在JIRA、GitHub或任何其他bug跟踪系统中的问题,并将这些问题添加到build-info中。这个任务使用已配置的JFrogArtifactory V2服务连接。这些问题是通过从本地git日志中读取git提交消息来收集的。每个提交消息都与预先配置的正则表达式进行匹配,该表达式检索问题ID和问题摘要。收集问题所需的信息从yaml配置中检索,该配置是作为任务的一部分设置的。

这是yaml配置结构。

version: 1 issues: trackerName: JIRA regexp: (.+-[0-9]+)\s-\s(.+) keyGroupIndex: 1 summaryGroupIndex: 2 trackerUrl: http://my-jira.com/issues aggregate: true aggregationStatus: RELEASED
配置属性

属性名

描述

版本 模式版本用于内部使用。不要改变!
trackerName 问题跟踪系统的名称(类型)。例如,JIRA。该属性可以取任何值。

正则表达式

用于匹配git提交消息的正则表达式。表达式应该包含两个捕获组—用于问题键(ID)和问题摘要。在上面的例子中,正则表达式匹配提交消息,示例如下:

HAP-1007 -这是一个示例问题

keyGroupIndex

用于检索问题密钥的正则表达式中的捕获组索引。在上面的例子中,将索引设置为“1”将得到检索hap - 1007从这个提交消息:

HAP-1007 -这是一个示例问题

summaryGroupIndex

正则表达式中用于检索问题摘要的捕获组索引。在上面的例子中,将索引设置为“2”将得到检索这个提交消息的示例问题:

HAP-1007 -这是一个示例问题

trackerUrl 问题跟踪URL。此值用于构建到Artifactory构建UI中的问题的直接链接。

如果希望所有构建都包含以前构建的问题,则设置为true。

aggregationStatus

如果aggregate被设置为true,该属性指示应该在多长时间内聚合问题。在上面的示例中,问题将从以前的构建中聚合,直到找到具有RELEASE状态的构建。方法提升生成时设置生成状态Jfrog rt建设促进命令。


yaml配置可以作为任务配置的一部分作为文本存储,也可以存储在文件中。可以将该文件保存在源代码控制中,并将其与其他源代码一起提取到构建代理中。然后,此任务可以访问和使用它。


- task: JFrogCollectIssues@1 inputs: artifactoryConnection: 'jfrog artifactory' configSource: 'taskConfiguration' buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)'

向Artifactory发布构建信息

大多数JFrog任务都可以配置为本地收集和存储构建信息。这个任务使用已配置的JFrogArtifactory V2服务连接。收集的构建信息然后可以使用发布构建信息的任务。

有关构建信息的更多信息,请参见Artifactory构建集成

在配置任务时,选择您配置的Artifactory服务端点,并指定您是否希望从代理收集环境变量并将它们添加到构建信息中。

- task: JFrogPublishBuildInfo@1 input: buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' excludeEnvVars: '*password*;*psw*;*secret*;*key*;*token*;

将构建信息发布到Artifactory之后,就可以从Artifactory选项卡中的构建结果。

在Artifactory中推广已发布的构建

为了支持构件生命周期,Artifactory支持将已发布的构建从一个存储库提升到另一个存储库。

JFrog构建推广Task通过复制或移动构建工件和/或依赖项到目标存储库来促进构建。
该任务可以作为构建或发布管道的一部分添加。

运行以下步骤配置JFrog构建推广任务:

  1. 选择已配置的JFrogArtifactory V2服务连接,已将构建发布到该连接。
  2. 指定的名称目标库构建应该提升到这个级别。
  3. 设置状态,并可选地添加评论.这些细节将在Artifactory UI中作为构建历史的一部分可见。
  4. (可选)设置a源库为了升职。
  5. 选择包括构建依赖项如果您想要提升构建依赖项。
  6. 要复制而不将构件移动到目标存储库,请选择使用复制选项将构件复制到目标存储库。
  7. 选择排练在运行构建升级之前测试升级。


- task: JFrogBuildPromotion@1 inputs: artifactoryConnection: 'jfrog artifactory' buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' targetRepo: ' stag- local' status: ' published ' comment: ' promotion release candidate' sourceRepo: 'Dev1-local' includeDependencies: false copy: true dryRun: false

在发布中使用构建升级

您可以通过将工件从一个Artifactory存储库提升到另一个Artifactory存储库来控制工件的生命周期。当将Build Promotion作为Azure DevOps发布管道的一部分嵌入时,它可以派上用场。为了帮助您实现这一点,请遵循以下步骤来创建一个包含JFrog构建推广的任务。

  1. 创建一个新的版本。
  2. 点击环境并为发布版本选择一个模板。
  3. 点击工件而且选择构建作为源类型。
  4. 填写剩下的表格细节。
  5. 如果您希望这个版本始终使用Artifactory的最新版本,请选择指定一个特定的版本号随着默认的版本并选择一个可用的版本号I建立数列表框。
  6. 如果您想在发布期间推广一个特定的版本号,请选择在版本创建的时候指定随着默认的版本
  7. 如果您希望提升最新版本号,请选择指定一个特定的版本号随着默认的版本然后选择任何构建数字。然后,单击变量选项卡并添加ARTIFACTORY_RELEASE_BUILD_NUMBER的管道变量最新的作为值。
  8. 配置Artifactory建筑推广任务作为发布管道任务之一。
    该任务将使用稍后在创建版本时选择的构建号。
  9. 就这样,你完成了!
    现在可以创建版本了。您将选择的版本号是将在Artifactory中推广的版本号。

使用JFrog x射线进行安全漏洞审计项目

JFrog审计task触发对使用JFrog Xray的项目依赖项的安全漏洞的审计。这个任务使用已配置的JFrog Xray V2服务连接。扫描是同步的,这意味着任务等待扫描完成。

要确定用于识别漏洞的策略,您可以为Xray Watches设置一个列表,或者在Artifactory中选择与策略相关联的JFrog Project或路径。

该功能需要版本3.29.0或更高的JFrog Xray。

—task: JFrogAudit@1 inputs: xrayConnection: 'jfrog xray token' watchesSource: 'watches' watches: 'watch1,watch2' allowFailBuild: true

使用JFrog Xray扫描已发布版本的安全漏洞

JFrog x射线扫描任务允许使用JFrog Xray触发构建扫描。对于要扫描的构建,首先需要使用JFrog发布BuildInfo的任务。这个任务使用已配置的JFrog Xray V2服务连接。当扫描被触发时,Xray开始扫描构建工件和依赖项。扫描是同步的,这意味着任务等待扫描完成。

如果允许失败构建如果设置了任务选项,并将Xray配置为构建失败,那么如果发现了漏洞,则构建管道将失败。

该功能需要版本3.37.0或更高的JFrog Xray。

- task: JFrogBuildScan@1 input: xrayConnection: 'jfrog xray token' buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' allowFailBuild: true vuln: false

x射线扫描完成后,一个漏洞表将被打印到任务运行日志中,以及一个到build-info报告的链接。


将Docker映像推入和拉出Artifactory

JFrog码头工人task允许从Artifactory中的docker存储库中推送和拖动docker映像。该任务还可以配置为为推送或提取的映像捕获构建信息。除了关于构建和构建环境的详细信息外,构建信息还包括作为构建依赖项和构建工件的映像层。任务将生成信息本地存储在生成代理上。存储的构建信息稍后可以发布到Artifactory使用发布构建信息的任务。

此功能需要Artifactory的7.33.3或更高版本。

有关Docker和Artifactory的更多信息,请参见Artifactory Docker注册

—task: JFrogDocker@1 input: command: 'Pull' artifactoryConnection: 'jfrog artifactory' imageName: 'myjfrog. j青蛙。io/dock -local/hello-world:latest' collectBuildInfo: true buildName: '$(Build.DefinitionName)' buildNumber: '$(Build.BuildNumber)' skipLogin: false


用JFrog x射线扫描本地Docker图像

JFrog码头工人任务允许使用JFrog Xray扫描本地docker映像。扫描结果显示在构建日志中。
默认情况下,结果将包括发现的所有漏洞。但是,您可以将任务配置为只显示Xray中配置的违规项。
你可以通过配置任务来使用:

  1. 你的JFrog项目。如果有与此项目相关的x射线手表,将使用这些手表。
  2. x射线手表或手表列表。
  3. Artifactory中的存储库路径,其中有与之关联的x射线手表。

该功能需要版本3.40.0或更高的JFrog Xray。

—task: JFrogDocker@1 input: command: 'Scan' xrayConnection: 'jfrog xray token' watchesSource: 'none' license: true allowFailBuild: true threads: '3' skipLogin: false

在发布中使用已发布的工件

发布到Artifactory的工件可以用于发布管道。有两种方法可以实现这一点。

第一种方法是在发布期间使用Artifactory Download任务下载文件。更多信息请参见从Artifactory下载泛型依赖项。

您还可以将Artifactory设置为发布的工件源。这允许下载先前发布到Artifactory的构建的构件。阅读更多关于将构建发布到Artifactory的信息,请参见将构建信息发布到Artifactory部分。

按照以下步骤将Artifactory作为一个工件源添加到一个发布中。

  1. 创建一个新的Release并单击工件|添加




  2. 选择Artifactory源类型。




  3. 选择一个Artifactory服务、一个构建名称和要使用的默认版本。




    就是这样!你就完成了。
    现在,当初始化发布时,与定义的构建相关联的构件被下载到发布代理。

丢弃Artifactory中已发布的构建

要丢弃来自Artifactory的旧版本运行,请添加JFrog丢弃构建任务添加到管道。

运行以下步骤配置任务。

  1. 选择已配置的JFrog Artifactory V2服务连接,您希望在该连接上丢弃构建。
  2. 键入构建的名称。
  3. 可选地设置保持构建运行的最大天数。较旧的构建运行将被丢弃。
  4. 可选地设置要保留的最大构建数量。
  5. 可选的构建运行集,形式为10,11,12,…要保留,不要丢弃。
  6. 检查删除构件复选框,以删除构建工件,而不仅仅是构建元数据。
  7. 选中Async复选框,使操作异步化。在这种情况下,管道不会等待操作完成,但在发生故障时不会通知管道。

- task: JFrogDiscardBuilds@1 inputs: artifactoryConnection: 'jfrog artifactory' buildName: '$(Build.DefinitionName)' maxDays: '60' maxBuilds: '400' excludeBuilds: '10,11,12' deleteArtifacts: true

管理和分发发布包

JFrog分布是一个集中式平台,允许您提供软件发行版分发。管理是JFrog Enterprise+的核心部分发布包以及它们的分发过程,包括发布内容、权限级别和目标目的地。分发提供了一个安全且结构化的平台,将发布二进制文件分发到多个远程位置,并在生成新的发布版本时更新它们。作为发布流的一部分,发布包由目标目的地进行验证,以确保它们被正确签名并安全使用。

JFrog分布任务允许创建、更新、签名和删除发布包。它还允许将发布分布到边缘节点。

  • 该任务需要配置您的JFrog发行版本V2实例作为Azure DevOps中的服务连接。然后可以将配置的实例设置为分发服务任务中的价值。
  • 任务触发器JFrog CLI执行分发操作。
  • 在创建或更新发布包时,您需要提供文件规格定义要包含在发布包中的工件。
  • 在分发发布包时,您可以通过定义JSON格式的规则分发规则来控制分发目的地。举个例子。

    分布规则JSON结构
    {“distribution_rules”:[{“:域名”:“DC-1”,“city_name”:“纽约”,“country_code”:(" 1 ")},{“:域名”:“DC-2”,“city_name”:“特拉维夫”、“country_code”:(" 972 ")}]}

    分布规则格式也支持通配符。例如:

    {“distribution_rules”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": ["*"] } ] }

- task: JFrogDistribution@1 input: command: 'distribute' distributionConnection: 'distCon' rbName: 'myReleaseBundle' rbVersion: '$(Build.BuildNumber)' distRulesSource: 'taskConfiguration' distSync: true maxWaitSync: '40'


执行JFrog CLI命令

扩展支持泛型JFrog Artifactory的JFrog CLI任务,叫JFrog CLI V2,它允许执行JFrog CLI命令。该命令将使用所选对象提供的连接详细信息JFrog平台在Azure DevOps中配置的服务连接,因此不需要将连接细节作为命令选项提供。

- task: JfrogCliV2@1 input: jfrogPlatformConnection: 'ecosys平台令牌'命令:'jf rt curl api/system/version'

发布说明

2.1.0(2022年3月28日)

  1. 支持Dotnet任务的Nuget协议配置。
  2. 支持自定义工作目录JFrog CLI V2任务。
  3. 通过删除冗余的复选框来改进JFrog通用任务中的同步删除流程。
  4. Bug修复:没有使用审计任务上的自定义工作目录。
  5. Bug修复:Azure DevOps服务器的兼容性问题。
2.0.3(2022年1月19日)
  1. Bug修复:Nuget和。net发布任务使用平面上传。
2.0.2(2022年1月12日)
  1. Bug修复:从Azure服务器上验证失败的可见规则中删除破折号。
  2. Bug修复:Conan -仅在“添加远程”上显示Artifactory连接服务。
2.0.1(2022年1月2日)
  1. 最初版本
  • 没有标签
版权所有©2022 JFrog有限公司