Azure Pipelines 多存储库如何获取 Git 提交 ID

2023-12-29

对于具有多个存储库的 Azure Pipeline,如何从签出的资源存储库中获取 GIT 提交 ID?支持吗?

我使用 Azure 存储库来存储管道 yaml 文件,并检查代理上的构建源以在那里进行构建。我们使用的是 Delphi,所以我们必须使用代理。

resources:
  repositories:
  - repository: MyBitBucketRepo
    type: bitbucket
    endpoint: MyBitBucketServiceConnection
    name: MyBitBucketOrgOrUser/MyBitBucketRepo

trigger:
- pilot

pool:
  name: MyAgent
  demands: RADSTUDIO

variables:
  GIT_COMMIT: $(Build.SourceVersion) # <- How can I get the checked out Commit ID for the MyBitBucketRepo?
  GIT_BRANCH: $(Build.SourceBranchName) # And the branch name?

steps:
- checkout: MyBitBucketRepo

- script: dir $(Build.SourcesDirectory)
- script: echo $(GIT_COMMIT)
- script: echo $(GIT_BRANCH)
# todo set environment vars on agent with the Commit and Branch names required by msbuild script on agent
# todo run msbuild script on agent

如何从签出的资源存储库中获取 GIT 提交 ID?支持吗?

恐怕目前 Azure DevOps 还不支持这一点。

因此,我们不能使用预定义变量,例如$(Build.SourceVersion)直接从多存储库获取 Git Commit ID。

为了解决这个问题,我们可以使用 git 命令行来获取提交 ID 和分支名称:

 git rev-parse HEAD
 git branch -r

您可以检查我的测试 YAML 文件以获取一些详细信息:

resources:
  repositories:
  - repository: TestProject
    type: github
    name: xxxx/TestProject
    endpoint: GitHub connection 1
  - repository: leotest
    type: bitbucket
    name: Lsgqazwsx/leotest
    endpoint: Lsgqazwsx

variables:
  GIT_COMMIT: $(Build.SourceVersion)
  GIT_BRANCH: $(Build.SourceBranchName)


stages:
- stage:
  jobs:
   - job: A
     pool:
       name: MyPrivateAgent
     steps:
     - checkout: TestProject
     - script: echo $(GIT_COMMIT)

- stage:
  jobs:
   - job: B
     pool:
      name: MyPrivateAgent
     steps:
     - checkout: leotest
     - script: git rev-parse HEAD
     - script: git branch -r

结果为job B:

来自 bitbucket.org 的提交 ID:

希望这可以帮助。

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

Azure Pipelines 多存储库如何获取 Git 提交 ID 的相关文章

随机推荐

  • 类型错误:createSlice 不是 vitest 中的函数

    我正在构建一个 tic tac toe 游戏 与 redux 进行反应 并尝试使用 vitest 进行测试 我已经设置了板片和商店 但是当尝试运行我的第一个测试时 我收到以下错误 Failed Suites 1 FAIL src slice
  • 将 NSArray 复制到空 NSArray 中

    我有第一个 NSArrayfirstArray我做 firstArray removeAllObjects 当我想用另一个数组的内容填充它之后secondArray 这样写对吗 firstArray secondArray No first
  • Haskell 中的素筛

    我对 Haskell 很陌生 我只是想找到前 200 万个素数的总和 我正在尝试使用筛子生成素数 我认为埃拉托色尼筛子 但它真的很慢 我不知道为什么 这是我的代码 sieve x xs x sieve filter a gt a mod x
  • 使用entityManager.createNativeQuery(query,foo.class)

    我想从 a 返回一个整数列表 javax persistence EntityManager createNativeQuery call 为什么下面的说法是错误的 entityManager createNativeQuery Selec
  • Altair 图表上方的动态文本

    在下面代码生成的图表中 用户可以将鼠标悬停在线段上以在图表上显示一个点 并且该点的信息显示在图表上方 import altair as alt import numpy as np import pandas as pd df pd Dat
  • 类似命名元组的类

    当我需要一个快速的一次性类时 我发现自己经常在我的 python 代码中编写这个类 class Struct object def init self kwargs for k in kwargs setattr self k kwargs
  • find 和 xarg 组合上需要计数器

    所以我有这个代码 find cobacoba type f xargs n 5 bash c a 0 1 2 3 4 echo File a 希望结果 File cobacoba 1 3 cobacoba 1 6 cobacoba 1 q
  • 内容提供程序不与 SqliteDatabase 同步

    我有 2 项活动 ActivityA通过Content Provider访问数据库 并启动ActivityB ActivityB直接访问数据库 我发现之后ActivityB更新了数据库 ActivityA通过CP查询数据库 结果不会更新 但
  • Android 从服务获取屏幕尺寸

    我通过使用活动中的以下内容获得了屏幕尺寸 Display display getWindowManager getDefaultDisplay 但同样的事情在服务中不起作用 出于明显的原因 我知道 但我迫切需要从服务中获取显示尺寸 有人可以
  • AppleScript 或 Automator 用于单击应用程序中的菜单?

    我不确定这是否可以通过 AppleScript 和 或 Automator 实现 但我希望能够 a 启动一个应用程序 我知道这可以通过 AppleScript 或 Automator 轻松完成 b 应用程序启动后 使用 AppleScrip
  • python 中的方法委托

    我正在编写一个用于编排 AWS 集群的小型框架 并且有一些反复出现的常见分层模式 一种这样的模式是将实例集合收集到一个更大的对象中 然后将一些方法直接委托给所有实例 因此 我没有一遍又一遍地复制和粘贴相同的样板代码 而是使用以下模式对其进行
  • 在 C# 中提供方法的同步和异步版本

    我正在用 C 编写一个 API 我想提供公开可用方法的同步和异步版本 例如 如果我有以下功能 public int MyFunction int x int y do something here System Threading Thre
  • 为什么我的 XSL 文件不再应用于我的 XML 文件?

    我在 reports 目录中创建 xml 文件 它们引用样式表 例如 SurveyRespondentList xsl 最新的 Firefox Quantum 68 0 64 位 不接受这一点 以前的版本多年来一直有效我的报告也适用于 In
  • 缩放按钮内的可绘制对象?

    目前我的可绘制对象只是缩放到正常大小 我希望它适合我的按钮 这是它现在的样子 这是按钮的 xml
  • 如何在酒吧上制作3D效果

    I have a very simple basic bar s graphic like this one but i want to display the bars with some 3d effect like this 我只是希
  • 将 int 转换为 int[]

    我有一个数据集 我试图将数据集的所有 Id 放入数据行中 最终将其保存在 int 数组中 它不适合我 它说 Cannot implicitly convert from type int to int Dataset ds new Busi
  • 日期与闰年的差异

    我有 5 周 5 种不同的日程安排 第一周 周一至周五 上午 8 点至下午 5 点 周六和周日休息 第二周 周一至周五 上午 10 点至下午 6 点 周六和周日休息 第三周 周一至周五 上午 11 点至晚上 7 点 周六和周日休息 第四周
  • 为 Blend 和 VS 提供设计时 ViewModel 数据

    在基于 MVVM 的应用程序中 我必须在设计时提供哪些选项来提供 ViewModel 数据 以便我们的设计人员实际上可以在 Blend3 和 VS 2008 中看到一些内容 你怎么做这个 我可以利用 mc ignorable 来实现这一点吗
  • Gradle 缩小所有 javascript

    我正在尝试缩小应用程序中的所有 js 文件 我正在使用gradle js 插件 https github com eriwen gradle js plugin 我能够使用它来缩小单个文件 但我希望我的所有 js 文件都被缩小 这是我尝试过
  • Azure Pipelines 多存储库如何获取 Git 提交 ID

    对于具有多个存储库的 Azure Pipeline 如何从签出的资源存储库中获取 GIT 提交 ID 支持吗 我使用 Azure 存储库来存储管道 yaml 文件 并检查代理上的构建源以在那里进行构建 我们使用的是 Delphi 所以我们必