azure-devops - 确定 VSTS 发布期间的先前提交
问题描述
在执行部署时,我希望根据某些文件路径自上一版本以来是否已更改来执行一些优化。
有没有办法找出目标环境上以前的提交哈希是什么?我猜它需要去“以前的版本”->“构建工件”->“提交”,但我被困在第一步。
为了澄清,我希望能够列出“部署”模式中显示的提交:
解决方案
如果构建定义为多个分支构建
然后你需要通过之前的发布/构建获取最后一次提交的 sha-1 值,然后获取最后一次提交。实现步骤如下:
获取最新版本
使用REST API:
GET https://{account}.vsrm.visualstudio.com/{project}/_apis/release/releases?$top=2&definitionId={id}api-version=4.1-preview.6
您将获得特定版本定义的最后两个版本。对于这两个版本,一个是您正在部署的当前版本,另一个是最后一个版本。
从上一个版本获取最后一个 buildId
第一步,您可以从参数中获取最后的发布日志
logsContainerUrl
。您可以下载最新的发布日志以压缩和解压缩日志。然后您可以buildId
从下载工件步骤日志中获取。从 buildId 获取最后一次提交 sha-1
使用REST API获取最后一次构建,您可以从响应中获取源版本(最后一次提交)。
如果构建定义为某个分支构建
然后通过 git 命令可以更轻松地获得最后一次提交的 sha-1 值。
您可以使用带有以下脚本的 PowerShell 任务:
git clone <URL for git repo> repofolder
cd repofolder
git checkout $(Build.SourceBranchName)
$lastcommit=$(git rev-parse HEAD~)
echo "last commit sha-1 value is $lastcommit"
笔记:
推荐阅读
- jenkins - Jenkins 构建名称状态
- unity3d - 蛇形运动 - 跟随身体的每个部位到头部路径
- javascript - 如何使我的 formGroup 默认返回 [ngValue]="null"?
- google-analytics - iOS 12-only Crash on -[GAIAnalyticsPropertiesStore upsertPropertyRecord:]
- c++ - TensorFlow自定义操作:输出张量的线程安全
- covariance - 埃菲尔:像先驱者
- javascript - 调用外部 api 时的快速路由
- html - 为什么这个 div 不使用相对定位垂直居中?
- javascript - 如何基于数组动态附加单击事件侦听器?
- mongodb - 如何从文档数组中提取文档数组?