当前位置: 首页 > 知识库问答 >
问题:

如何在Azure Devops中为发布管道执行路径筛选

欧盛
2023-03-14

我正在做一个DevOps练习,其中我在Azure DevOps Repo(一个项目一个文件夹)中维护不同项目的代码。需要为所有人创建单个发布管道。

我试图创建一个发布管道,在这里我使用工件源作为DevOps repo(因为我直接部署ARM模板,它不需要构建)。现在,我需要为特定ARM文件夹中的更改触发发布(即,如果对项目2进行了更改)。如果我在项目1中进行更改,则不应触发它。

我怎样才能做到呢?

构建管道是可行的,因为我们可以为相应的文件夹添加路径过滤器。我确实这样做了,并且按照预期工作,也就是说,如果我在项目1中进行了更改,则只会触发相应的构建1。

我正在使用Azure DevOps发布管道的classis编辑器。在启用CD触发器时,我看不到任何路径过滤器选项。

共有1个答案

仇征
2023-03-14

没有这种开箱即用的解决方案,你需要手动处理它来检测像这里这样的变化

$files=$(git diff HEAD HEAD~ --name-only)
$temp=$files -split ' '
$count=$temp.Length
echo "Total changed $count files"
For ($i=0; $i -lt $temp.Length; $i++)
{
  $name=$temp[$i]
  echo "this is $name file"
  if ($name -like "SubFolderA/*")
    {
      Write-Host "##vso[task.setvariable variable=MicroserviceAUpdated]True"
    }
}

然后,您可以在特定部署任务的自定义条件下使用此变量。

 类似资料:
  • 问题内容: 如何 从Jenkinsfile(groovy)中获取Jenkins中管道配置字段“脚本路径”的内容? 在此处输入图片说明 在此示例中:我想在 执行Jenkinsfile本身时获取字符串’Apps / mq-logger / Jenkinsfile’ 。 问题答案: 您可以通过这种方式获取脚本路径 请注意,您必须approve 所有这些方法。

  • 在https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html我们了解到: 以上代码显示了我们如何为t恤添加aggs,但我们如何做到: 和

  • 我不确定发生了什么,过去我们在Azure Devops中的管道构建的一切都很好。 但是就在最近,我们的每个构建都在zipariing上失败了... APK zipmays和构建在使用Android Studio IDE时很好,但在Azure Devops管道中失败了。 以下是Azure中zipalign的开始: 这是最后的失败消息: 最后,这是我们管道YAML的上下文: 任何帮助都将不胜感激! 编

  • 我正在AzureDevops CI/CD管道中为一个Java项目进行POC。我创建了一个Maven项目,该项目具有针对独立于我的项目的演示网站运行的Selenium测试(TestNG)。我想在构建管道中运行单元测试,在发布管道中运行UI Selenium测试。 任务似乎是我需要的构建块。我认为您可以区分单元测试 我能够在构建期间使用Maven任务和Surefire插件运行Selenium测试,但请

  • 嗨,我在log4j2上使用slf4j。如何动态更改日志路径? 我的log4j2.xml看起来像 有什么方法可以更改运行时写入日志的路径吗? 我尝试在路径中拥有系统属性并在运行时设置它,但Log4J2不考虑更新的值。系统属性方法- 这是否需要重新配置。我没有看到slf4j的任何公开服务需要重新配置。

  • 我有一个Maven SpringBoot项目。我想把它推到云工厂。为此,我为Jenkins编写了一个groovy管道脚本。我要补充什么?在脚本和/或pom中。xml将其发布到Artifactory中,这样Jenkins将从Git中提取代码并将其发布到Artifactory。在另一个环境中,我将拉出artifactory版本化的JAR,并将其推送到Cloud Foundry。 假设我的项目的grou