自动安装
如果构建代理可以访问internet,那么JFrog CLI以及Maven和Gradle Extractors将在第一次需要时下载并自动安装到代理上。
JFrog Tools Installer
如果您的代理没有internet访问,您可以配置管道来从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 Tools Installer任务到您的构建或发布管道。
- 选择您配置的Artifactory服务。
- 选择jfrog-cli-remote作为下载JFrog CLI的目标存储库。
如果您的管道使用JFrog Maven或JFrog Gradle任务,选择提取器作为下载Maven提取器的存储库。
手动安装
安装JFrog命令行
该扩展在后台运行JFrog CLI来运行它的许多操作。扩展会在第一次需要时自动下载并在构建代理上安装JFrog CLI。但是,如果构建代理不能访问internet,那么在尝试下载JFrog CLI时,构建将失败,您需要手动下载并安装它。
在没有互联网访问的代理上安装JFrog CLI:
- 在代理上创建目录结构
当前文件系统:$ (Agent.ToolsDirectory) / _jf / /
. - 下载最新的JFrog CLI版本在这里.请确保下载与代理操作系统匹配的可执行文件。一定要下载摩根富林明JFrog CLI的可执行文件,而不是遗留的jfrog可执行文件。
- 复制下载的文件摩根富林明可执行文件当前的创建的目录。
安装Maven提取器
触发JFrog Maven任务时,JFrog CLI会自动将Maven Extractor jar下载到构建代理中这是第一次需要。但是,如果生成代理不能访问internet,则在尝试下载文件时生成将失败。因此,您需要手动下载并安装它。
在没有internet访问的代理上安装Maven Extractor jar:
- 在代理的文件系统上创建目录结构:$ (Agent.ToolsDirectory)/ _jf / .jfrog / / maven的依赖关系2.28.6
- 下载build-info-extractor-maven3-2.28.6-uber.jar并将其放在您创建的“maven”目录中。
安装Gradle提取器
触发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,需要将它们放在security/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.在文件中添加以下行:
【净。::SecurityProtocol = [Net. manager]。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 Maven任务允许触发Maven构建,同时解析依赖关系并在Artifactory之间和Artifactory之间部署工件。这个任务使用配置的JFrogArtifactory V2服务连接。
该任务还可以配置为捕获构建信息,并将下载和上传的构件存储为构建依赖项和构建构件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
您还可以选择过滤掉将要部署到Artifactory的一些Maven构件。您可以通过定义一个或多个包含模式来实现这一点。您还可以定义一个或多个排除模式。模式可以包括通配符,并且应该用逗号和空格分隔,如下所示。
有关Maven存储库的更多信息,请参见人工Maven存储库.
触发Gradle构建
的JFrog Gradletask允许触发Gradle构建,同时解析依赖关系并从Artifactory和Artifactory之间部署工件。这个任务使用配置的JFrogArtifactory V2服务连接。
该任务还可以配置为捕获构建信息,并将下载和上传的构件存储为构建依赖项和构建构件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
在幕后,JFrog Gradle任务使用Gradle Artifactory Plugin与Gradle版本集成。如果你的Gradle脚本已经应用了Gradle Artifactory Plugin,设置使用Artifactory插件选项,让任务知道它不应该在Gradle脚本中应用插件。
你应该设置artifactoryPublish的Gradle任务之一任务(s)领域.artifactoryPublish是一个由Gradle Artifactory Plugin公开的任务,用于部署工件以及向Artifactory发布构建信息。
触发Npm构建
的JFrog Npmtask允许触发npm构建,同时解析npm依赖项,并在Artifactory中部署npm包。这个任务使用配置的JFrogArtifactory V2服务连接。
该任务还可以配置为捕获构建信息并将上传的文件作为工件存储在其中。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
有关npm存储库的信息,请参见人工的npm注册表.
触发Nuget和。net核心构建
的JFrog Nuget和.NET Core任务允许从Artifactory恢复NuGet包。这些任务还允许向Artifactory发布NuGet包。这个任务使用配置的JFrogArtifactory V2服务连接。可以将任务配置为捕获构建信息。build-info将恢复的包存储为构建依赖项,并将上传的包存储为构建工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
有关Nuget存储库的更多信息,请参见人工的NuGet存储库.
使用Pip触发Python构建
的JFrog皮普任务允许从Artifactory安装Pip包。这个任务使用配置的JFrogArtifactory V2服务连接。还可以将任务配置为捕获构建信息。build-info将安装的包存储为构建依赖项。捕获的构建信息稍后可以使用发布构建信息到Artifactory的任务。
将所有依赖记录为build-info的一部分
运行JFrog皮普如果Python环境中已经安装了一些包,那么安装的包将不会作为构建信息的一部分包含,如果它们最初不是从Artifactory安装的。在这种情况下,一条警告消息将被添加到构建日志中。
如何在build-info中包含所有包?
属性第一次运行任务禁用本地pip缓存选项选中后,应该重新下载并安装这些包,因此它们将包含在build-info中。也建议从目录中运行该命令虚拟环境.的虚拟环境设置命令Field允许这样做。
在幕后,该任务使用JFrog CLI作为pip的包装器。JFrog CLI还包括一个缓存机制,它在本地存储依赖项的详细信息,确保它们包含在构建信息中,即使它们已经在本地缓存。
触发柯南构建
柯南是C和c++的包管理器。
的JFrog柯南任务允许触发conan构建,同时从Artifactory中的conan存储库解析conan依赖项。这个任务使用配置的JFrogArtifactory V2服务连接。它还允许将conan包发布到Artifactory conan存储库。该任务还可以配置为捕获构建信息,并将下载和上传的包存储为构建依赖项和工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
任务支持配置安装,添加远程,创建和上传柯南的命令。此外,它还支持a自定义选项,允许将任务配置为执行任何conan命令。cona的完整文档可在柯南网站.
有关Conan存储库的更多信息,请参见人工柯南仓库.
触发Go构建
的JFrog去任务允许触发go构建,同时从Artifactory中的go存储库解析go依赖项。这个任务使用配置的JFrogArtifactory V2服务连接。它还允许将go包发布到Artifactory go存储库。该任务还可以配置为捕获构建信息,并将下载和上传的包存储为构建依赖项和工件。捕获的构建信息稍后可以使用JFrog发布构建信息的任务。
有关Go存储库的更多信息,请参见人工Go存储库.
收集构建问题
能够看到构建发布到Artifactory,并查看所有JIRA问题与之相关联的是Artifactory在管理关于工件的元数据时最强大的功能之一构建.
的JFrog收集构建问题task收集跟踪项目问题的列表(例如,存储在JIRA, GitHub或任何其他错误跟踪系统中的问题),并将这些问题添加到build-info中。这个任务使用配置的JFrogArtifactory V2服务连接。通过从本地git日志中读取git提交消息来收集问题。每个提交消息都与预配置的正则表达式匹配,正则表达式检索问题ID和问题摘要。收集问题所需的信息从yaml配置中检索,该配置被设置为任务的一部分。
这是yaml配置结构。
version: 1 issue: 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 build-promote命令。 |
yaml配置既可以作为任务配置的一部分作为文本存储,也可以存储在文件中。该文件可以保存在源代码控制中,并与其他源一起获取到构建代理中。然后这个任务可以访问和使用它。
发布构建信息到Artifactory
大多数JFrog任务都可以配置为在本地收集和存储构建信息。这个任务使用配置的JFrogArtifactory V2服务连接。收集的构建信息然后可以使用JFrog发布构建信息的任务。
有关构建信息的详细信息,请参见人工构建集成.
在配置任务时,选择已配置的Artifactory服务端点,并指定是否希望从代理收集环境变量并将它们添加到构建信息中。
将构建信息发布到Artifactory后,可以从Artifactory选项卡。
在Artifactory中推广已发布的构建
为了支持工件生命周期,Artifactory支持将已发布的构建从一个存储库提升到另一个存储库。
的JFrog Build推广Task通过复制或移动构建构件和/或依赖项到目标存储库来促进构建。
此任务可以作为构建或发布管道的一部分添加。
运行以下步骤配置JFrog Build推广任务:
- 选择已配置的JFrogArtifactory V2已向其发布构建的服务连接。
- 指定对象的名称目标库构建应该被提升到。
- 设置状态,并可选地添加评论.这些细节将在Artifactory UI中作为Build History的一部分可见。
- (可选)设置a源库为了升职。
- 选择包括构建依赖项如果您希望提升构建依赖项。
- 要复制工件而不将其移动到目标存储库,请选择使用复制选项将工件复制到目标存储库。
- 选择排练在运行构建升级之前测试升级。
在发布中使用构建提升
您可以通过将工件从一个Artifactory存储库提升到另一个Artifactory存储库来控制工件的生命周期。当将Build Promotion作为Azure DevOps发布管道的一部分嵌入时,它可以派上用场。为了帮助您实现这一点,请按照以下步骤创建包含JFrog Build推广的任务。
- 创建一个新的发布。
- 点击环境并为发布选择一个模板。
- 点击工件和选择构建作为源类型。
- 填写其余的表单详细信息。
- 如果您希望此版本始终使用来自Artifactory的最新构建,请选择指定一个特定的构建号随着默认的版本并选择可用的构建号之一建立数列表框。
- 如果希望在发布期间提升特定的构建号,请选择在发布创建时指定随着默认的版本:
- 如果希望提升最新的构建号,请选择指定一个特定的构建号随着默认的版本然后选择任何构建数字。然后,点击变量选项卡并添加ARTIFACTORY_RELEASE_BUILD_NUMBER管道变量with最新的作为值。
- 配置人工建造推广任务作为您的发布管道任务之一。
任务使用的构建号将在稍后创建发布时选择。 - 就是这样,你完成了!
现在您可以创建发布了。您将选择的构建号是将在Artifactory中提升的版本号。
审计项目的安全漏洞与JFrog x射线
的JFrog审计任务触发对JFrog Xray的项目依赖项的安全漏洞审计。这个任务使用配置的JFrog Xray V2服务连接。扫描是同步的,这意味着任务等待扫描完成。
要确定用于识别漏洞的策略,您可以为Xray Watches设置一个列表,或者在Artifactory中选择与该策略关联的JFrog项目或路径。
此功能需要3.29.0或以上版本的JFrog Xray。
扫描发布版本的安全漏洞与JFrog Xray
的JFrog x射线扫描任务允许触发构建扫描与JFrog x射线。对于要扫描的构建,首先需要将其发布到ArtifactoryJFrog发布BuildInfo的任务。这个任务使用配置的JFrog Xray V2服务连接。当扫描被触发时,Xray开始扫描构建工件和依赖项。扫描是同步的,这意味着任务等待扫描完成。
如果允许失败构建任务选项设置并且Xray配置为构建失败,如果发现漏洞,构建管道将失败。
此功能需要3.37.0或以上版本的JFrog Xray。
x射线扫描完成后,将漏洞表打印到任务运行日志中,并提供到构建信息报告的链接。
从Artifactory中推送和拉取Docker映像
的JFrog码头工人task允许在Artifactory的docker存储库中推送和提取docker映像。该任务还可以配置为捕获推送或拉取映像的构建信息。除了关于构建和构建环境的详细信息之外,构建信息还包括作为构建依赖项和构建工件的映像层。任务将生成信息本地存储在生成代理上。存储的构建信息可以稍后发布到Artifactory使用JFrog发布构建信息的任务。
此功能需要Artifactory版本7.33.3或更高版本。
有关Docker和Artifactory的更多信息,请参见人工Docker注册表.
扫描本地Docker图像与JFrog x射线
的JFrog码头工人任务允许使用JFrog x射线扫描本地docker映像。扫描结果显示在构建日志中。
默认情况下,结果将包括发现的所有漏洞。但是,您可以将任务配置为仅显示在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发行版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通用任务中的同步删除流程。
- Bug修复:审计任务上没有使用自定义工作目录。
- Bug修复:Azure DevOps Server的兼容性问题。
2.0.3(2022年1月19日)
- Bug修复:在Nuget和。net发布任务中使用平面上传。
2.0.2(2022年1月12日)
- Bug修复:从Azure服务器上验证失败的可见规则中删除破折号。
- Bug修复:柯南-显示人工连接服务“添加远程”只。
2.0.1(2022年1月2日)
- 最初版本