自动安装
如果构建代理可以访问internet, JFrog CLI以及Maven和Gradle Extractors会自动下载并安装在代理上,这是第一次需要它们。
JFrog工具安装程序
如果您的代理没有互联网接入,您可以配置管道来从JFrog Artifactory实例下载JFrog CLI和Maven Extractor,该实例被配置为代理下载存储库。
- 在Artifactory中创建两个远程存储库:
- 在Artifactory中创建一个远程存储库以供下载JFrog CLI。命名存储库jfrog-cli-remote并将其URL设置为https://releases.jfrog.io/artifactory/jfrog-cli/v2-jf/
- 在artifacts中创建一个远程存储库,用于下载Maven和Gradle提取器.为URL命名提取器而且设置URL:https://releases.jfrog.io/artifactory/oss-release-local/
- 方法配置Artifactory服务器jfrog-cli-remote而且提取器作为Azure DevOps类型中的服务连接JFrog Artifactory V2.
- 添加JFrog工具安装程序任务到您的构建或发布管道。
- 选择您配置的Artifactory服务。
- 选择jfrog-cli-remote作为目标存储库,下载JFrog CLI。
如果管道使用JFrog Maven或JFrog Gradle任务,选择提取器作为资源库下载Maven Extractor。
手动安装
安装JFrog CLI
扩展运行JFrog CLI在后台运行它的许多操作。当第一次需要时,扩展会自动下载并在构建代理上安装JFrog CLI。但是,如果您的构建代理无法访问internet,则在尝试下载JFrog CLI时构建将失败,您需要手动下载并安装它。
在没有网络连接的代理上安装JFrog CLI。
- 在代理的目录结构上创建目录结构
当前文件系统:$ (Agent.ToolsDirectory) / _jf / /
. - 下载最新的JFrog CLI版本在这里.请确保下载与您的代理操作系统相匹配的可执行文件。请务必下载摩根富林明JFrog CLI的可执行文件,而不是遗留的jfrog可执行文件。
- 复制已下载的摩根富林明可执行文件当前的您创建的目录。
安装Maven Extractor
当触发JFrog Maven任务时,JFrog CLI自动将Maven Extractor jar下载到构建代理第一次是必须的。但是,如果构建代理无法访问internet,则在尝试下载文件时构建将失败。因此,您需要手动下载并安装它。
在没有互联网接入的代理上安装Maven Extractor jar:
- 在代理的文件系统上创建目录结构:$ (Agent.ToolsDirectory)/ _jf / .jfrog / / maven的依赖关系2.28.6
- 下载build-info-extractor-maven3-2.28.6-uber.jar并将其放置在您创建的“maven”目录中。
安装Gradle Extractor
当触发JFrog Gradle任务,JFrog CLI自动下载Gradle Extractor jar到构建代理第一次是必须的。但是,如果构建代理无法访问internet,则在尝试下载文件时构建将失败。因此,您需要手动下载并安装它。
在没有互联网接入的代理上安装Gradle Extractor jar:
- 在代理的文件系统上创建目录结构:$ (Agent.ToolsDirectory)/ / gradle / 4.24.12 _jf / .jfrog /依赖关系
- 下载build-info-extractor-gradle-4.24.12-uber.jar并把它放在你创建的“gradle”目录中。
安装柯南
要让生成代理能够运行conan生成,请执行以下操作:
- 按以下步骤访问代理并安装conan这些步骤.
- 确认conan可执行文件在在代理上运行构建的用户的Path环境变量中可用。
使用TFS 2015
先决条件
Node.JS 8及以上版本
构建代理需要使用Node.JS版本8及更高版本。要检查构建代理上正在运行的Node.JS版本:
- 导航到工人\ \处理器节点文件夹位于代理主页下。
- 从终端运行节点- v.
要在构建代理上升级Node.JS:
- 将代理上现有的node.exe文件替换为node.exe文件,该文件具有位于工人\ \处理器节点文件夹下的代理主页。
配置服务连接
为了允许JFrog任务与JFrog环境一起工作,您需要在Azure DevOps中配置以下服务连接。
服务连接 | 任务使用 |
---|---|
|
|
|
|
|
|
|
|
不使用公共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. Net.]SecurityProtocolType]:: Tls12
3.将文件放在TFS机器上的以下位置:C:\Users\<用户名>\ \ WindowsPowerShell文档
管理通用工件
的JFrog通用工件task支持JFrog Artifactory的以下操作:
- 上传工件到Artifactory
- 从Artifactory下载工件
- 在Artifactory中复制工件
- 在Artifactory中移动工件
- 在Artifactory中删除工件
- 在Artifactory中设置工件的属性
- 从Artifactory中的工件中删除属性
任务触发器JFrog CLI来执行这些操作文件规格.当任务用于上传和下载工件时,它还可以被配置为捕获构建信息,稍后可以使用JFrog发布构建信息的任务。
在配置任务时,需要完成以下操作:
- 选择您配置的JFrogArtifactory V2服务连接。
- 指定您是想通过任务UI定义文件规范,还是让任务从文件中读取规范。
- 设置文件规范的内容或文件规范的路径。
- 设置其他任务选项。
- 检查先进的部分查看其他选项。
触发构建
您可以触发以下构建。
触发Maven构建
的JFrog Maventask允许触发Maven构建,同时解决依赖关系并将工件部署到Artifactory。这个任务使用已配置的JFrogArtifactory V2服务连接。
任务还可以配置为捕获构建信息,并将下载和上传的工件存储为构建依赖项和构建工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
您还可以选择过滤一些将部署到Artifactory的Maven工件。可以通过定义一个或多个include模式来实现这一点。您还可以定义一个或多个排除模式。这些模式可以包括通配符,并且应该用逗号和空格分隔,如下所示。
有关Maven存储库的更多信息,请参见Artifactory Maven存储库.
触发Gradle构建
的JFrog Gradletask允许触发Gradle构建,同时解决依赖关系并将工件部署到Artifactory。这个任务使用已配置的JFrogArtifactory V2服务连接。
任务还可以配置为捕获构建信息,并将下载和上传的工件存储为构建依赖项和构建工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
在幕后,是JFrog Gradle任务使用Gradle Artifactory插件与Gradle构建集成。如果你的Gradle脚本已经应用了Gradle Artifactory插件,设置使用Artifactory插件选项,让任务知道它不应该应用Gradle脚本中的插件。
你应该设置artifactoryPublish的Gradle任务之一任务(s)领域.artifactoryPublish是一个由Gradle Artifactory Plugin公开的任务,用于部署工件以及向Artifactory发布构建信息。
触发Npm构建
的JFrog Npmtask允许触发npm构建,同时解决npm依赖关系并从Artifactory和向Artifactory部署npm包。这个任务使用已配置的JFrogArtifactory V2服务连接。
任务还可以配置为捕获构建信息,并将上传的文件作为工件存储在其中。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
有关npm存储库的信息,请参见Artifactory npm Registry.
触发Nuget和.NET核心构建
的JFrog Nuget而且JFrog .NET Core任务允许从Artifactory恢复NuGet包。这些任务还允许将NuGet包发布到Artifactory。这个任务使用已配置的JFrogArtifactory V2服务连接。任务可以配置为捕获构建信息。构建信息将恢复的包存储为构建依赖项,并将上传的包存储为构建构件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
有关Nuget存储库的更多信息,请参见Artifactory NuGet存储库.
使用Pip触发Python构建
的JFrog皮普task允许从Artifactory安装Pip包。这个任务使用已配置的JFrogArtifactory V2服务连接。任务还可以配置为捕获构建信息。构建信息将已安装的包作为构建依赖项存储。捕获的构建信息稍后可以使用发布构建信息到Artifactory的任务。
记录所有依赖项作为构建信息的一部分
当运行JFrog皮普如果Python环境中已经安装了一些包,则安装的包将不会作为build-info的一部分包含,如果它们最初不是从Artifactory安装的。在这种情况下,将向构建日志中添加一条警告消息。
如何包括所有的包在构建信息?
方法首次运行任务禁用本地pip缓存选项勾选后,应重新下载并安装这些包,因此它们将包含在build-info中。还建议从虚拟环境.的虚拟环境设置命令Field允许这样做。
在幕后,该任务使用JFrog CLI作为pip的包装器。JFrog CLI还包括一个缓存机制,它在本地存储依赖项的详细信息,确保它们包含在构建信息中,即使它们已经在本地缓存了。
触发柯南构建
柯南是C和c++的包管理器。
的JFrog柯南task允许在Artifactory中从conan存储库中解析conan依赖时触发conan构建。这个任务使用已配置的JFrogArtifactory V2服务连接。它还允许将conan包发布到Artifactory conan存储库。任务还可以配置为捕获构建信息,并将下载和上传的包存储为构建依赖项和工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
任务支持配置安装,添加远程,创建而且上传柯南的命令。此外,它还支持a自定义选项,允许将任务配置为执行任何conan命令。cona的完整文档可在柯南网站.
有关Conan存储库的详细信息,请参见Artifactory Conan库.
触发Go构建
的JFrog去task允许触发go构建,同时从Artifactory中的go存储库中解析go依赖项。这个任务使用已配置的JFrogArtifactory V2服务连接。它还允许将go包发布到Artifactory的go存储库。任务还可以配置为捕获构建信息,并将下载和上传的包存储为构建依赖项和工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
有关Go存储库的更多信息,请参见Artifactory Go知识库.
收集构建问题
能够看到构建这是发表到Artifactory,并看到所有JIRA问题当涉及到管理关于工件的元数据时,它是Artifactory最强大的功能之一构建.
的JFrog收集构建问题task收集跟踪项目问题的列表(例如,存储在JIRA, GitHub或任何其他错误跟踪系统中的问题,并将这些问题添加到build-info中。这个任务使用已配置的JFrogArtifactory V2服务连接。通过从本地git日志中读取git提交消息来收集问题。每个提交消息都与预先配置的正则表达式进行匹配,正则表达式检索问题ID和问题摘要。收集问题所需的信息是从yaml配置中检索的,该配置被设置为任务的一部分。
这是yaml配置结构。
版本:1个问题: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配置可以存储为文本作为任务配置的一部分,也可以存储在文件中。该文件可以保存在源代码控制中,并与其他源代码一起获取到构建代理。然后,该任务可以访问和使用它。
发布构建信息到Artifactory
大多数JFrog任务都可以配置为在本地收集和存储构建信息。这个任务使用已配置的JFrogArtifactory V2服务连接。方法将收集的构建信息发布到ArtifactoryJFrog发布构建信息的任务。
有关“生成信息”的详细信息,请参见Artifactory Build集成.
在配置任务时,选择已配置的Artifactory服务端点,并指定是否希望从代理收集环境变量并将它们添加到build-info中。
将构建信息发布到Artifactory后,可以从Artifactory选项卡中的生成结果。
在Artifactory推广已发布的作品
为了支持工件的生命周期,Artifactory支持将已发布的构建从一个存储库提升到另一个存储库。
的JFrog Build推广Task通过将构建构件和/或依赖项复制或移动到目标存储库来促进构建。
此任务可以作为构建或发布管道的一部分添加。
运行这些步骤配置JFrog Build推广任务:
- 选择已配置的JFrogArtifactory V2服务连接,构建已发布到该连接。
- 的名称目标库构建应该提升到哪个级别。
- 设置状态的构建,并可选地添加评论.这些细节将作为Artifactory UI中构建历史的一部分可见。
- (可选)设置a源库为了升职。
- 选择包括构建依赖项如果您希望提升构建依赖项。
- 要复制而不将工件移动到目标存储库,请选择使用复制选项将工件复制到目标存储库。
- 选择排练在运行构建升级之前测试升级。
在发布中使用构建提升
您可以通过将工件从一个Artifactory存储库提升到另一个来控制工件的生命周期。当构建推广作为发布管道的一部分嵌入到Azure DevOps中时,它可以派上用场。为了帮助您实现这一点,请按照以下步骤创建包含JFrog Build推广的任务。
- 创建一个新的发布。
- 点击环境并为发布选择一个模板。
- 点击工件而且选择构建作为源类型。
- 填写表单的其余细节。
- 如果您希望这个版本总是使用Artifactory的最新版本,请选择指定一个特定的版本号随着默认的版本并选择一个可用的版本号I建立数列表框。
- 如果您想在发布期间提升一个特定的版本号,请选择在发布创建时指定随着默认的版本:
- 如果您希望提升最新的版本号,请选择指定一个特定的版本号随着默认的版本然后选择任何构建数字。然后,点击变量选项卡并添加ARTIFACTORY_RELEASE_BUILD_NUMBER管道变量为最新的作为值。
- 配置人工建筑推广任务作为您的发布管道任务之一。
该任务将使用稍后在创建版本时选择的构建号。 - 就这样,你完成了!
现在可以创建版本了。您将选择的版本号是将在Artifactory中推广的版本号。
使用JFrog x射线审计安全漏洞项目
的JFrog审计任务触发审计您的项目依赖的安全漏洞与JFrog Xray。这个任务使用已配置的JFrog x射线V2服务连接。扫描是同步的,这意味着任务等待扫描完成。
要确定用于识别漏洞的策略,您可以为Xray Watches设置一个列表,或者在Artifactory中选择与该策略关联的JFrog项目或路径。
该功能需要3.29.0或以上版本的JFrog Xray。
使用JFrog x射线扫描已发布的构建以查找安全漏洞
的JFrog x射线扫描task允许使用JFrog x射线触发构建扫描。对于要扫描的构建,首先需要将其发布到ArtifactoryJFrog发布BuildInfo的任务。这个任务使用已配置的JFrog x射线V2服务连接。当扫描被触发时,Xray开始扫描构建工件和依赖项。扫描是同步的,这意味着任务等待扫描完成。
如果允许失败构建task选项设置和Xray配置为构建失败,构建管道将失败,如果发现漏洞。
该功能需要3.37.0或以上版本的JFrog Xray。
x射线扫描完成后,漏洞表将打印到任务运行日志中,并附带一个到build-info报告的链接。
从Artifactory中推和拉Docker映像
的JFrog码头工人task允许从Artifactory中的docker存储库中推入和拉出docker映像。该任务还可以配置为捕获推送或拉取映像的构建信息。除了有关构建和构建环境的详细信息外,构建信息还包括作为构建依赖项和构建构件的映像层。任务在生成代理上本地存储生成信息。存储的构建信息稍后可以发布到Artifactory使用JFrog发布构建信息的任务。
该功能需要Artifactory的7.33.3或更高版本。
有关Docker和Artifactory的更多信息,请参见Artifactory Docker注册表.
用JFrog x射线扫描本地Docker图像
的JFrog码头工人任务允许使用JFrog x射线扫描本地码头图像。扫描结果显示在生成日志中。
默认情况下,结果将包括发现的所有漏洞。但是,您可以将任务配置为仅显示在x射线中配置的违规项。
你可以通过配置任务来使用:
- 你的JFrog项目。如果有与本项目相关的x射线手表,将使用这些手表。
- x射线手表或手表列表。
- Artifactory中的存储库路径,其中有与之关联的x射线手表。
此功能需要3.40.0或以上版本的JFrog Xray。
在发布中使用已发布的工件
发布到Artifactory的工件可以用于发布管道。有两种方法可以实现这一点。
第一种方法是在发布期间使用Artifactory Download任务下载文件。在从Artifactory下载通用依赖项一节中阅读更多信息。
您还可以将Artifactory设置为发布的工件源。这允许下载之前发布到Artifactory的构建的构件。在发布构建信息到Artifactory部分阅读更多关于发布构建到Artifactory的信息。
按照以下步骤将Artifactory作为工件源添加到发布中。
- 创建一个新的Release并单击工件|添加
- 选择Artifactory源类型。
- 选择一个Artifactory服务、一个构建名称和要使用的默认版本。
就是这样!你就完成了。
现在,当启动发布时,与已定义的构建相关联的构件将被下载到发布代理。
从Artifactory中丢弃已发布的构建
要丢弃来自Artifactory的构建的旧运行,请添加JFrog丢弃构建任务传递给管道。
运行以下步骤配置任务。
- 选择已配置的JFrog Artifactory V2服务连接,您希望在该连接上丢弃构建。
- 键入构建的名称。
- 可选地设置保持构建运行的最大天数。较旧的构建运行将被丢弃。
- 可选地设置要保留的最大构建数量。
- 可选的构建运行集,形式为10,11,12,…保留而不丢弃。
- 检查删除构件复选框,以删除构建构件,而不仅仅是构建元数据。
- 选中Async复选框,以使操作异步。在这种情况下,管道将不会等待操作完成,但如果发生故障,管道将不会收到通知。
管理和分发发布包
JFrog分布是一个集中式平台,允许您提供软件发布分发。它是JFrog Enterprise+的核心部分,管理发布包以及它们的分发过程,包括发布内容、权限级别和目标目的地。发行版提供了一个安全和结构化的平台,可以将发行版二进制文件分发到多个远程位置,并在产生新的发行版时更新它们。作为发布流的一部分,发布包由目标目的地进行验证,以确保它们被正确签名并且可以安全使用。
的JFrog分布Task允许创建、更新、签名和删除发布包。它还允许将发布分发到边缘节点。
- 该任务需要配置您的JFrog Distribution 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 ": ["*"] } ] }
执行JFrog CLI命令
扩展支持泛型JFrog CLI for JFrog Artifactory任务,叫JFrog CLI V2,允许执行JFrog CLI命令。该命令将使用所选对象提供的连接详细信息JFrog平台在Azure DevOps中配置了服务连接,因此不需要将连接细节作为命令选项提供。
发布说明
2.1.0(2022年3月28日)
- Dotnet任务支持Nuget协议配置。
- 支持在JFrog CLI V2任务中自定义工作目录。
- 通过删除冗余复选框来改进JFrog通用任务中的同步删除流。
- 错误修正:审计任务上的自定义工作目录不使用。
- 错误修复:与Azure DevOps服务器的兼容性问题。
2.0.3(2022年1月19日)
- Bug修复:Nuget和。net发布任务使用平面上传。
2.0.2(2022年1月12日)
- 错误修复:从Azure服务器上验证失败的可见规则中删除破折号。
- 错误修正:柯南-显示Artifactory连接服务在“添加远程”。
2.0.1(2022年1月2日)
- 最初版本