使用 NX monorepo 的 Azure 管道有条件发布

2024-04-18

我们有一个 NX monorepo,里面有多个项目,并且正在使用 nx受影响来确定哪些项目已被触及。这对于我们的构建管道非常有效,但我们希望仅在项目实际发生更改时才发布它们。我们希望每个项目都有多个发布管道,只有在实际接触时才会触发。


经过调查,我们得出的结论是,确实有可能!我们选择的路径是设置构建标签。请注意,这些与 git 标签不同(!)。

我们需要做的第一件事是确定哪些项目发生了更改,并用这些项目标记构建。我们通过利用 bash、nx 和 jq 来提供逗号分隔的列表来做到这一点。我们已将以下任务添加到构建管道中:

      - script: |
          projects=`npx nx show projects --affected --json --base=$(BASE_SHA) --head=$(HEAD_SHA) | jq -r '.|@csv' | tr -d '"'`
          echo "Touched projects:"
          echo $projects

          for project in ${projects//,/ }
          do
            echo "##vso[build.addbuildtag]$project"
            echo "Creating tag for: $project"
          done
        displayName: 'Tag build'

这样我们的构建就会被标记,并且我们可以在发布管道中定义构建标签过滤器。这可以通过在发布部分和工件下编辑管道来完成,单击照明图标,然后在构建分支过滤器下,您可以定义分支+构建标签:

通过这样做,只有当特定标签存在时才会触发发布分支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 NX monorepo 的 Azure 管道有条件发布 的相关文章

  • 下载 VSTS 附件

    有人知道如何使用 C 库检索附件 ID 并从 VSTS 下载 WorkItem 附件吗 我已经审查了附件样本 https github com Microsoft vsts dotnet samples blob master Client
  • 如何从 Visual Studio Online 在 FTP 上部署工件?

    我已经在 Visual Studio Online 上设置了自动构建 并且能够在构建下获取工件 现在我想在 FTP 上部署工件 由于我的网站托管在 GoDaddy 上 并且他们为我提供了 FTP 帐户 任何人都可以帮我设置此帐户吗 这可以通
  • Hudson 与 UCM ClearCase 集成

    我有一台安装了 JBoss UCM ClearCase 和 ant 的 Linux 构建机器 我想了解如何使用 Hudson 和 Hudson Clearcase 插件配置持续集成 我可以使用已创建的现有动态视图吗 请给我一些基本步骤 先感
  • 仅对 Visual Studio 团队服务强制执行拉取请求

    有一种方法可以强制某些人只能通过拉取请求为一个分支做出贡献 我希望他们能够接受拉取请求 但不能直接推送更改 这将很有用 因为我们有一些分支策略 对于接受拉取请求的人来说 例如构建必须通过 问题是 如果我们允许某人接受拉取请求 我们将允许他们
  • Azure DevOps REST API - 选项列表如何与字段关联?

    I am trying to use rest to create fields and picklists on the web site I created a field as type picklist String and add
  • 如何在 gitlab-ci 作业之间传递变量?

    我有一个像这样的 gitlab ci stages calculation execution calculation job stage calculation script calculate something and output
  • 我可以在 Azure Pipelines 中对变量进行子字符串化吗?

    我正在寻找一种方法来定义我的变量azure pipelines yml我可以在其中子串的文件 Build SourceVersion gt 仅使用前 7 个字符 文档中似乎没有可以执行此类字符串操作的内置函数 我有什么遗漏的吗 我的另一种方
  • Jenkins + Cmake + JIRA = 多个相互依赖项目的 CI?

    我们的系统中有许多小项目在 Linux 上运行 Slackware 7 11 正在慢慢迁移到 RHEL 6 0 大约 50 100 个应用程序和 15 20 个库 我们几乎所有的应用程序都使用我们的一个或多个库 我们的源树看起来像这样 ap
  • Visual Studio Professional 2013 Update 5 中的“在线服务不可用”问题

    我一直在 vscode 2013 工作直到今天 但是 当我今天早上尝试打开 IDE 时 它收到 您的许可证已过时 必须更新 错误消息 如下所示 在我尝试更新许可证和登录操作之后 当我尝试这两个时 它得到 在线服务不可用 请稍后重试 错误消息
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该
  • 是否可以在我的 Azure DevOps 构建管道“发布工件”任务中有条件地设置工件名称?

    我想知道是否可以在 Azure DevOps 构建管道 发布工件 任务中有条件地设置构建工件的名称 我想根据构建管道的输入生成不同的工件 比如说 根据输入管道变量 我想生成三个工件之一 红色 蓝色 绿色 是否可以根据输入变量指定在我的 发布
  • Team Foundation Build 还是 TeamCity?

    我们主要是一家从事 NET LOB 开发的 MS 商店 我们还在 CRM 应用程序中使用 MS Dynamics 所有开发人员目前都在使用 VS SQL Server 2008 我们也使用 VSS 但每个人在工作中都讨厌它 而且很快就会被淘
  • 检查 docker 在 Gitlab CICD 管道中运行

    我在用着亚搏体育appGitlab CI CD https docs gitlab com ee ci README html构建 Node 服务器的 Docker 镜像 我想知道是否有办法测试它docker run图像的质量还可以 我们很
  • VSO:具有分层区域结构的单一项目?

    历史上我们一直有各自的VSO正在开发的每个逻辑项目的项目 这一点尤其重要 因为我们需要为每个项目都有单独的积压工作 每个项目都有自己的产品负责人 我们有一个由大约 10 名开发人员组成的团队 他们在这些项目之间工作超过 2 周的冲刺 在使用
  • 持续集成的投资回报率是多少?

    目前 我们的组织没有实行持续集成 为了让我们启动并运行 CI 服务器 我需要生成一份文档来证明投资回报 除了通过尽早发现和修复错误来节省成本之外 我很好奇我可以将其写入本文档的其他好处 节省 我喜欢 CI 的第一个原因是它有助于防止开发人员
  • Azure DevOps Pipelines“正在等待代理的控制台输出...”

    我需要从正在运行的发布任务的输出中获取某些内容才能完成 身份验证代码 但控制台现在没有更新 我得到的只是 等待代理的控制台输出 这种情况发生在我们的自托管代理 Linux 或 Windows 和托管 Ubuntu 1604 代理上 有问题的
  • VSTS/Azure DevOps:包上自动增量 NuGet 包版本

    运行 NET Core Pack任务 如何让输出的NuGet包版本自动递增 例如 如果我当前的版本是1 0 0 那么下次我调用 Pack 任务时 我想看看1 0 1 我正在使用环境构建变量Build BuildNumber并在例如时刻获得输
  • 从 azure pipeline.yml 将变量组参数传递到模板时出现问题

    我已经声明了一个变量组Agile Connections 如下所示 该组对任何管道没有任何限制 我正在使用另一个名为 vars yml 的模板来存储一些其他变量 variables group Agile Connections name
  • Gitlab CI - 不支持:外部构建目录

    我在保存工件时遇到问题 该项目分为3个模块 其中一个已保存 另外两个不保存 克隆项目 克隆到 home gitlab runner builds Gso uWvA 0 www project infoserwis project root
  • 在 TFS 2012 中使用持续集成进行自动部署

    我已经为 WCF 项目设置了持续集成 并希望使用 MSBuild 参数自动将应用程序部署到远程服务器 但它没有部署 运行新的构建时 所有测试都会通过并且所有项目都会构建 但网站尚未部署 另外 我没有从构建中收到任何错误 表明出现了任何问题

随机推荐

  • 我们如何重命名MySQL 5.0中的数据库名称[重复]

    这个问题在这里已经有答案了 我在用MySQL 5 0 我创建了一个名为accounts 但现在我想将数据库名称更改为FinanceAccounts 如何更改数据库名称MySQL 5 0 我认为只有一种方法 除了重命名 MySQL datad
  • 安全移动 Microsoft SDK 文件夹

    我的硬盘上有一个文件夹 C Program Files Microsoft SDKs 我想知道将其移动到外部驱动器是否安全 Visual Studio 或任何其他工具是否依赖于此特定文件夹 注册表中有相当多的条目 至少在我的注册表中 指向该
  • Cython指定固定长度字符串的numpy数组

    我有一个函数 我想使用 Cython 来处理大量固定长度的字符串 对于标准 cython 函数 我可以像这样声明数组的类型 cpdef double g double in arr cdef double out arr np zeros
  • 对话框的对象位置 Libgdx

    我有一个对话框 Dialog dialog new Dialog style dialog setSize 400 500 dialog setPosition Gdx graphics getWidth 2 200 Gdx graphic
  • 使用自动 bash 脚本检查 FTP 中是否存在文件

    我想自动化执行以下操作的批处理作业 检查我的file txt存在于FTP服务器中 我将其重命名为file trt 检查我的file txt and file trt存在 如果存在我发送电子邮件 我运行另一个脚本 最后我删除file trt
  • Ruby+Anemone Web Crawler:正则表达式匹配以一系列数字结尾的 URL

    假设我正在尝试抓取一个网站并跳过一个像这样结束的页面 我目前正在 Ruby 中使用 Anemone gem 来构建爬虫 我正在使用skip links like方法 但我的模式似乎永远不匹配 我试图使其尽可能通用 因此它不依赖于子页面 而只
  • 为什么这个 Sql 语句(有 2 个表连接)需要 5 分钟才能完成?

    更新 下面添加了 3 个更新 以下sql语句需要5分钟才能完成 我只是 不 得到 它 第一个表有 6861534 行 第二个表少了一点 第三个表 包含 4 个地理字段 与第一个表相同 Those GEOGRAPHY第三个表中的字段 它们不应
  • 错误域=FIRFirestoreErrorDomain 代码=7“权限缺失或不足。”

    所以我有以下代码从 firestore 检索文档 该函数在我的 viewDidLoad 中调用 func loadAnnotations db collection jumpSpotAnnotations getDocuments quer
  • 将静态库链接到共享库

    我正在尝试在 Ubuntu Linux 上使用 g 5 4 0 创建共享库 我已经构建了 Poco C 库的静态库 a 文件 我想将它们静态链接到我的共享库中 但它不起作用 我已将以下字符串添加到我的构建脚本中 Wl whole archi
  • 如何使用c#读取EPS的属性或颜色信息?

    我的要求是读取另外50个EPS文件并导出EPS的属性 颜色模式 这可能吗 颜色模式有灰度 RGB 和 CMYK 到目前为止 我尝试使用 BitmapImage 来读取 EPS 但我没有运气 BitmapImage 不读取 EPS 因为它是矢
  • ANDROID:如何将视频文件下载到 SD 卡?

    我在网站上有一个 MP4 格式的视频文件 我希望用户能够通过单击链接将该视频下载到他们的 SD 卡上 是否有捷径可寻 我目前有这段代码 但它不起作用 不知道我做错了什么 谢谢你的帮助 import java io BufferedInput
  • Titan 加载弹性搜索问题

    我使用以下代码来加载泰坦 TitanFactory Builder config TitanFactory build config set storage backend berkeleyje config set storage dir
  • 指针的大小以及该大小是否取决于体系结构

    好吧 抱歉这个问题 更像是一个一般文化问题 尚未找到准确的答案 如果我有类似的东西 char Field or void Field or double pointers 指针的大小是一样的吗 据我记得大学时它是 4 个字节 但是 根据CP
  • 类型错误 - Python 中的类

    我是 Python 的初学者 刚刚开始掌握课程 我确信这可能是非常基本的东西 但为什么这段代码是这样的 class Television def init self print Welcome your TV self volume 10
  • 多个函数聚合的结果不可用于进一步计算。为什么?

    我对 R 中聚合函数的结果有疑问 我的目标是从数据集中选择某些鸟类并计算密度 调查区域内观察到的个体的数量 为此 我获取了主数据文件的子集 然后在区域上进行聚合 计算 平均值和个体数量 由向量长度表示 然后我想用计算出的平均面积和个体数量来
  • 异或数据包中的所有数据

    我需要一个可以根据用户输入计算校验和的小程序 不幸的是 我对校验和的了解只是它是数据包中所有数据的异或 我试图在网上搜索一个例子 但没有运气 我知道我是否有一个字符串 41 4D 02 41 21 04 02 02 00 00 00 00
  • 如何在 Android 上的 Camera2 API 中设置“CONTROL_AE_EXPOSURE_COMPENSATION”?

    我目前正在开发 Androids Camera 2 API 当前的问题是我无法设置 CONTROL AE EXPOSURE COMPENSATION 我的代码 1 0 public void setExposure double expos
  • 如何让 Spring 连接我的 JmsComponent

    我正在编写一个使用 Akka Akka Camel 和 Spring 进行配置的应用程序 应用程序需要充当针对各种应用程序服务器的独立 JMS 客户端 为此 它需要使用 JNDI 设置 JMS 连接工厂 我正在用 jBoss 测试这个 我对
  • 如何在 xsl 中检查字符串是否不区分大小写

    我有一个要求需要检查DB dbtype oracle 不区分大小写 我怎样才能做到这一点 这是我的代码
  • 使用 NX monorepo 的 Azure 管道有条件发布

    我们有一个 NX monorepo 里面有多个项目 并且正在使用 nx受影响来确定哪些项目已被触及 这对于我们的构建管道非常有效 但我们希望仅在项目实际发生更改时才发布它们 我们希望每个项目都有多个发布管道 只有在实际接触时才会触发 经过调