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 的相关文章

  • 从 Eclipse 的历史视图中删除 ORIG_HEAD 和 FETCH_HEAD

    我最近开始使用 Eclipse Kepler 和 EGit 插件 这些分支不是我习惯的 有没有办法永久阻止这些分支的创建 我尝试手动删除它们 但它不起作用 并且我不想在下次获取或变基时保留它们 据我从对您问题的评论中了解到 您只希望这些参考
  • git 的精简包是什么?

    我还没有找到太多关于瘦包的信息 并且手册页的信息对此相当含糊 我知道这与连接速度慢有关 但是什么是 连接速度慢 它的优点和缺点是什么 什么时候应该使用它 什么时候不应该使用它 根据记录 手册页 index pack https www gi
  • 是否可以为 TFS2015.2 构建定义命令行步骤配置“消息突出显示模式”?

    可以配置Error message highlight pattern and Warning message highlight patternTFS2015 2的Command Line step 例如 我可能有以下运行命令行实用程序的
  • 将主分支的提交合并到另一个分支,但不合并两个分支

    我有 git 存储库和一个主分支 我决定开发新功能 并且创建了新分支 new branch 我已经在 new branch 中创建了一些提交 但我还没有完成新功能 我决定修复 master 分支中的一些错误 因此我切换到 master 分支
  • 如何从父克隆中过去的提交中获取 git 子模块的关联提交 ID?

    有没有一种方法 除了实际检查父提交之外 还可以根据父克隆中的提交 ID 确定子模块的 SHA 1 提交 ID 我知道我能找到现在与 SHA 1 关联git submodule 这是一个例子 我有一个带有单个子模块的克隆foo上个月情况发生了
  • 如何在 git 交互式 rebase 中将提交与下一个提交合并?

    git rebase i允许通过以下方式将提交与前一个提交合并squash or fixup 这两个选项都需要至少一次提交pick ed 当一个人想要使用第一个提交但丢弃其提交消息时 情况怎么样 换句话说 如果我希望第一个提交与后续提交合并
  • 避免使用 git 和 make 重新编译

    我在 git 中有两个开发分支 并且经常需要在两者之间进行更改 然而 真正令人沮丧的是 每次我在 git 中更改分支时 整个项目都会重新构建 因为某些文件的文件系统时间戳会发生变化 Ofc makefiles 配置为将项目构建到两个不同的构
  • Git-svn:批量删除孤立的远程分支

    我正在处理的 SVN 项目 通过 git svn 有经常创建的分支 然后与主干重新集成 然后删除 现在项目大约有10个分支没有被删除 但是在git中 gitbranch r显示大约有50个 我可以一次删除这些 检查它们是否仍然存在于 svn
  • 将代码从没有权限的存储库推送到私有存储库?

    我有一个来自外部存储库 我们称之为 ExRepo 的文件夹 我没有任何推送权限 我有一个名为 MyOwnRepo 的个人存储库 如何获取 ExRepo 并将其合并到 MyOwnRepo 中 我已经尝试过这个 C Users
  • 未签出...捆绑安装无法修复帮助!

    https github com intridea omniauth git at master is not checked out Please run bundle install Bundler GitError 那我该怎么办 捆绑
  • Mac 到 EC2 - 源代码控制三角问题 - git?同步?啥?

    我有一个日常 EC2 实例 事实上 请注意那些更改IP每次重新启动它们时 都会出现另一个问题 实例上有一个文件夹 我在文件夹 mysql express 等 中有一个简单的 比如说 节点项目 比方说 这是一个网站 那么在我的 Mac 上进行
  • 如何从 git 存储库中删除作者?

    如果我创建一个 Git 存储库并公开发布它 例如在 GitHub 等上 并且我收到存储库贡献者的请求 无论出于何种原因删除或隐藏他们的名字 有没有一种方法可以轻松做到这一点 基本上 我有这样的请求 可能想将他们的姓名和电子邮件地址替换为 匿
  • Eclipse git checkout(又名恢复)

    是否可以做相当于git checkout在 Eclipse 中使用 Egit 插件 我有一个已修改的文件 我想放弃更改并将文件恢复到源存储库中的内容 在 Subversion 中 这称为恢复 在 git 中 相当于 checkout 我在团
  • 自给定提交以来 git 中的作者列表

    我想要一种列出所有 git 作者的方法 仅自给定提交以来 是独特的 这两个很简单 我在网上看到过一些解决方案 大多数使用git log format 但我看到的都不符合附加要求 按提交日期排序 因此 如果约翰 史密斯 John Smith
  • 是否有 git-merge --dry-run 选项?

    我正在合并一个可能有很多冲突的远程分支 我怎么知道它是否会发生冲突 我没有看到任何类似的东西 dry run on git merge 如前所述 传入 no commit标志 但为了避免快进提交 也传入 no ff 像这样 git merg
  • 防止在 Git 中签出

    我目前正在研究使用 Git 管理 OpenInsight 应用程序的源代码 由于 OI 代码存储在数据库表中 因此需要进行一定量的手动工作才能将源代码导出为文本 反之亦然 到目前为止 我已经成功地使用 Git 挂钩自动化了很多这项工作 但是
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • Git 查找第一个非本地提交

    有关的 列出尚未推送到源的 Git 提交 https stackoverflow com questions 3080509 list git commits not pushed to the origin yet git rev par
  • 本地分支显示在 GitHub 的“网络”视图上

    我们使用 Git 我们的工作流程由 dev 和 master 分支组成 它们位于 GitHub 和每个开发人员的本地存储库上 不会直接在 master 或 dev 上执行任何工作 而是在本地分支中执行工作 并且仅在 dev 上进行合并 然后
  • 在 emacs 的文件中不断出现的这些 ^M 是什么?

    我认为这可能与 TextMate 有关 但我们在一个小团队中工作 并且在 git 中几乎相同的文件的全文件冲突方面遇到了一些问题 在一个分支中 文件的每一行都附加了 M 这是什么神秘的事 M角色应该做什么 它从哪里来 我们的开发人员在 Wi

随机推荐

  • 类型错误: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 所以我们必