我正在尝试对Azure数据工厂的管道进行部署。换句话说,我打算只将最近修改过的管道或最近添加的管道部署到Azure门户中的ADF。目前,我在我的CD管道中使用powershell任务来部署所有管道。如何使用时间戳获取最近修改的管道?任何建议都会有帮助。 :)获取VSTS的git存储库中的上次更新/提交的文件
-1
A
回答
0
如果您想要构建所有文件,但只推送/发布要部署的已修改文件,这是可能的。
您可以使用PowerShell的任务来获得最后的提交ID(SHA-1值)$(Build.SourcesDirectory)
,然后用git show <commit id>
找到该文件在提交,然后复制这些文件被更改为$(build.artifactstagingdirectory)
。最后将这些文件发布到服务器。
0
您可以使用REST API获取已更改的文件。
简单的PowerShell脚本:
Param(
[string]$collection,
[string]$project,
[string]$repository,
[string]$commit,
[string]$token
)
$u="$($collection)$($project)/_apis/git/repositories/$repository/commits/$commit/changes"
Write-Output $u
$changedFiles=New-Object System.Collections.ArrayList
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$token)))
$result=Invoke-RestMethod -Method Get -Uri $u -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -ContentType "application/json"
Foreach($c in $result.changes)
{
If($c.item.isFolder -ne 'true')
{
Write-Output $c.item.path
$changedFiles.Add(($c.item.path))
}
}
参数(选中允许脚本访问的OAuth在构建/发布定义标记选项):
-collection $(System.TeamFoundationCollectionUri) -project $(System.TeamProject) -repository $(Build.Repository.Name) -commit $(Build.SourceVersion) -token $(System.AccessToken)
相关问题
- 1. 如何从git存储库获取上次提交日期?
- 2. Git:从前次提交中清除存储库中的文件
- 3. Git存储库的未提交更改
- 4. 从git存储库中提取所有未获取的更改
- 5. 提交更改到新的存储库
- 6. 获得之前在git存储库上被删除的提交
- 7. 使用JGit获取存储库中的最新提交信息
- 8. Git:获取提交文件的名称?
- 9. 如何将多个文件提交到c4droid的git存储库?
- 10. 如何删除我在本地git存储库中的上次提交
- 11. 如何退出DevOps上GIT存储库中的提交
- 12. GIT:在GIT Bash中更新存储库,GIT GUI仍显示旧的存储库
- 13. git从存储库中删除文件和旧提交
- 14. 提取git存储库的一部分?
- 15. 更新Git存储库
- 16. 如何在XCode 4中获取git存储库中的更改?
- 17. 创建获取上次提交的Git别名
- 18. Git中的提交是否代表存储库的状态?
- 19. Git:从存储库中远程提取
- 20. 如何从git存储库提取提交补丁
- 21. 如何从远程git存储库一次提交一个提交?
- 22. Git存储库内的Git存储库
- 23. 从特定存储库命令中提取最新提交
- 24. 从git-svn克隆的远程存储库更新裸Git存储库
- 25. 如何配置inorder将一些已提交的文件提交到Android Studio中的另一个git存储库
- 26. 在git中获取提交的标记
- 27. GIT:恢复上次提交?
- 28. Git撤消上次提交
- 29. 如何获取最新提交中提交的对象的名称Git
- 30. 第一次在第二个存储库中提交文件/文件夹?
你的意思是你想CI和CD的变化文件(s)为您的git回购的最新提交?但是构建和部署将用于最新提交的所有文件。 –
@ Marina-MSFT HI Marina。建立所有的文件,但只推送/发布基于时间戳的修改后的文件...有可能吗? –
是的,可以为所有文件构建并为更改后的文件进行部署。我在答案中给出了答案。 –