【发布时间】:2020-12-06 19:51:32
【问题描述】:
我正在尝试在 2 个分支之间获取新的/更改的 PowerShell 文件。从主要的一个和我在 Azure DevOps 管道中做拉取请求的一个:
$changedFiles = (git diff --cached --name-only | Where-Object { $_ -like "*.ps1" })
但是当命令在本地工作时我没有得到任何信息。我认为它需要更改管道中的位置,但是在尝试找到一些存储库文件后我找不到它。它应该在执行之前下载文件吗? 更多代码片段:
pre-commit.ps1
Get-Location # returns D:\a\1\s
Get-ChildItem # returns nothing
gci -recurse -filter "test.ps1" # returns nothing
$changedFiles = (git diff --cached --name-only | Where-Object { $_ -like "*.ps1" })
$exitCode = 0
$changedFiles # returns none
if ($changedFiles.length -eq 0) {
exit $exitCode
}
else{
...
}
azure-pipelines.yml
trigger:
- main
jobs:
- job: RunScript
pool:
vmImage: windows-2019
steps:
- powershell:
.\pre-commit.ps1
更新:
$files = (git diff --name-only HEAD HEAD~1 | Where-Object {$_ -match '\w*.ps[m]?1' })
【问题讨论】:
标签: git powershell azure-devops azure-pipelines