作为Azure Pipelines构建的一部分,我需要安装一些工具并将其添加到PATH
中,以供后续使用(通过Ant任务)和脚本任务(在Windows主机上)使用。经过大量研究,我发现应该解决什么问题:##vso[task.prependpath]
logging command。但是我无法使其在我的项目中起作用。类似于以下内容的操作无济于事,PATH
保持不变:
steps:
- script: |
ECHO ##vso[task.prependpath]%AGENT_BUILDDIRECTORY%\.tmp\node_modules\.bin
IF NOT EXIST .tmp MKDIR .tmp
IF NOT EXIST .tmp\node_modules\.bin\sfdx (
PUSHD .tmp
npm install sfdx-cli
POPD
)
displayName: Install SFDX CLI
我在做什么错了?
答案 0 :(得分:1)
有关如何在脚本中设置变量的官方文档: https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops&tabs=yaml%2Cbatch#set-in-script
批次
@echo ##vso[task.setvariable variable=sauce]crushed tomatoes
@echo ##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic
PowerShell
Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with
garlic"
壳
#!/bin/bash
echo "##vso[task.setvariable variable=sauce]crushed tomatoes"
echo "##vso[task.setvariable variable=secret.Sauce;issecret=true]crushed tomatoes with garlic"
答案 1 :(得分:0)
在我这边测试了命令<select name="provinsi_dom" id="provinsi_dom">
<?php
//mengambil nama-nama provinsi yang ada di database
$sqlProvinsi_dom = mysqli_query($con,"SELECT * FROM provinsi ORDER BY nama_provinsi ASC");
echo "<option value=''>--Pilih Provinsi--</option>";
while($p=mysqli_fetch_array($sqlProvinsi_dom)){
if ($p['id_provinsi']==$provinsi_dom) {
$cek="selected";
}else {
$cek="";
}
echo "<option value='$p[id_provinsi]' $cek>$p[nama_provinsi]</option>" ;
}
?>
</select>
,它起作用了。 ECHO ##vso[task.prependpath]%AGENT_BUILDDIRECTORY%\.tmp\node_modules\.bin
已成功添加到路径。
请确保您正在检查路径是否在下一个构建任务中更改,因为更新的环境变量仅反映在后续任务中。
答案 2 :(得分:0)
如果您在Windows主机上使用bash
,则一旦添加路径,就只能从单独的任务中访问它。
例如: 您将路径放在一个脚本中,并在另一个脚本中进行访问。
steps:
- script: |
echo "##vso[task.prependpath]$(PROGRAM)/bin" #prepend path
- script: |
program.exe #access program here