[英]Fixing PowerShell in the Yaml Pipeline
我有一個現有的 Yaml 管道,我正在嘗試理解和修復某些問題。 由於我是新手,因此在現有管道中幾乎沒有什么我無法理解的。 我想知道下面的任務在做什么。 我在這里看不到任何內聯 PowerShell 腳本,那么為什么它被創建為 PowerShell。 任務是在 ABC_x64-$(osSuffix)\bin 文件夾中添加 POMLXX dll,但下面的腳本是如何做到的
- powershell: |
Set-Variable -Name PATH -Value "$env:PATH;$(IppRoot)\redist\intel64_win\ipp;$(Build.SourcesDirectory)\ABC_x64-$(osSuffix)\bin;$(Build.BinariesDirectory);$(PuLib)/imports/Pulib67/dll/amd64;$(POMLXX)/runtimes/win-x64/native"
Write-Host "##vso[task.setvariable variable=PATH]$PATH"
displayName: 'Add AbcRoot, IPP binaries, Pulib67 and POMLXX to PATH on Win'
condition: eq(variables['Agent.OS'], 'Windows_NT')
- bash: |
export LD_LIBRARY_PATH="$(IppRoot)/redist/intel64_win/ipp:$(Build.SourcesDirectory)/MyProject_x64-$(osSuffix)/lib"
echo "##vso[task.setvariable variable=LD_LIBRARY_PATH]$LD_LIBRARY_PATH"
echo "##vso[task.setvariable variable=DYLD_LIBRARY_PATH]$LD_LIBRARY_PATH"
displayName: 'Add OrzRoot, IPP binaries and LibFT4222 to (DY)LD_LIBRARY_PATH on Linux and Mac'
condition: in(variables['Agent.OS'], 'Darwin', 'Linux')
這塊是 powershell:
Set-Variable -Name PATH -Value "$env:PATH;$(IppRoot)\redist\intel64_win\ipp;$(Build.SourcesDirectory)\ABC_x64-$(osSuffix)\bin;$(Build.BinariesDirectory);$(PuLib)/imports/Pulib67/dll/amd64;$(POMLXX)/runtimes/win-x64/native"
Write-Host "##vso[task.setvariable variable=PATH]$PATH"
它將一堆路徑添加到 PATH powershell 變量( set-variable -Name PATH
),包括從代理下來的路徑環境變量,然后將其導出回代理(帶有特殊命令字符串的Write-Host
)重新設置 Azure Pipelines PATH 變量。 該變量將在后續任務的上下文中設置,以便他們可以找到工具。
將環境更改保留到同一作業上下文中的新任務有點像 hack。
也可以看看:
該|
在powershell:
指示 YAML 解析器將下一個縮進塊解釋為多行字符串。
也可以看看:
有一個更好的解決方案,它看起來非常相似:
powershell: |
write-host "##vso[task.prependpath]$(IppRoot)\redist\intel64_win\ipp"
write-host "##vso[task.prependpath]$(Build.SourcesDirectory)\ABC_x64-$(osSuffix)\bin"
... etc
此命令是專門為向 PATH 環境添加路徑而創建的,即使其他工具安裝程序任務在您的腳本部分之后運行,它也可以工作。
也可以看看:
對於您問題的第一部分(“我沒有看到任何內聯 PowerShell 腳本”),語法
- powershell: |
是內聯腳本的簡寫。 對於問題的第二部分,該任務似乎首先嘗試將目錄添加到任務中的 PATH 環境變量,然后“導出”(通過task.setvariable
)該值作為發布變量到其他任務/作業/階段。
不僅如此,如果沒有進一步澄清您的問題和/或作業運行中的 output,我不能說更多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.