我想知道是否可以在 Azure DevOps 生成管道“发布项目”任务中有条件地设置生成项目的名称?我想根据生成管道的输入生成不同的项目。例如,基于输入管道变量,我想生成三个工件之一(“红色”,“蓝色”,“绿色”)。是否可以根据输入变量指定在我的“发布项目”任务中生成的项目,或者仅生成三个生成管道是否更容易/更好?
这是在Linux上运行任务时的bash版本。NAME是一个自定义变量,它使用预定义变量作为值。
trigger_model_version=RELEASE_ARTIFACTS_${NAME^^}_BUILDNUMBER
export version=${!trigger_model_version}
echo Deploying ${NAME}:${version}
是否可以在我的 Azure DevOps 生成管道“发布项目”任务中有条件地设置项目名称?
恐怕没有这种现成的方法可以做到这一点。如果您想有条件地设置工件名称,我们必须使用管道中的嵌套变量。
但是,目前,生成管道中尚不支持嵌套变量的值(如 $(CustomArtifactName_$(生成源分支名称))
。
作为解决方法,可以添加“运行内联 Powershell”
任务,以根据输入管道变量设置变量。
在我这边,我使用Build_SourceBranchName
作为输入管道变量。然后,我在内联电源外壳任务中添加以下脚本:
- task: InlinePowershell@1
displayName: 'Inline Powershell'
inputs:
Script:
$branch = $Env:Build_SourceBranchName
if ($branch -eq "TestA5")
{
Write-Host "##vso[task.setvariable variable=CustomArtifactName]Red"
}
else
{
Write-Host "##vso[task.setvariable variable=CustomArtifactName]Blue"
}
然后在“发布生成项目”任务中,我使用 drop-$(自定义项目名称)
设置项目
名称
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
inputs:
ArtifactName: 'drop-$(CustomArtifactName)'
希望这有所帮助。
最近刚刚构建了一个 Azure 管道,其中在一个阶段中,项目暂存目录中有不同的 zip 文件。我试图实现的是使用艺术任务将暂存文件夹中的所有zip文件发布到放置文件夹。 我在工件暂存目录中有两个存档的zip文件: $(Build.ArtifactStagingDirectory)/$(Build.BuildId). zip $(Build.ArtifactStagingDirectory)/cli
我有一个java应用程序,并试图使用Azure运营模式来构建和部署。能够进行构建并在构建管道中发布工件。在发布管道中,我在每个阶段都有一个maven任务来分解特定于环境的构建,我可以这样做,但是我想把它作为一个类似于构建管道中的工件来发布。有没有任何任务可以做到这一点或任何其他替代方法?
Azure DevOps 发布管道允许我指定多个输入项目,但自动触发仅发生在主要项目上。有没有办法对 N 个输入项目执行“全部等待”类型操作,以便我的发布管道仅在每个项目具有与某些指定值匹配的可用版本时才启动? 例如,假设我在一个存储库中进行了提交 M,该存储库具有多个不同的 CI 作业 A 和 B,这些作业花费的时间非常不同。一个 CI 作业 (A) 在几分钟内创建一个 NuGet 包作为项目,
我们希望通过 azure DevOps 将开发转移到另一家公司,我们问自己,是否不仅可以通过此管道推送新版本。但是,也可以通过 Azure 开发运营或 aws 开发运营管道从生产环境中下载数据?我研究了自己,但什么也没发现。 你们有这方面的更多信息吗? 谢谢
我现在有一个Azure DevOps发布管道,其中包含测试、验收和生产阶段,它们是按顺序触发的。当有新的生成可供部署时,将触发测试。 我遇到的问题是,所有阶段目前都部署了完全相同的工件。但这是错误的,因为它们部署到不同的环境,需要有自己版本的Web.config. 如何更改设置,使所有环境都能获得正确的软件包?我是否应该更改生成设置,以便为多个不同的配置生成,还是应该为每个环境分别生成?我如何选择
在我们的Azure DevOps部署中,我们有一个生成并运行“子”管道的“主”发布管道。子管道从不直接运行。 目前,我们在主管道中使用Powershell脚本启动子管道,但我想知道是否有一个内置任务可以自动执行此操作?我已经看了任务列表,但是没有什么跳出。如果没有也没关系,但我想问问,以防我错过了什么。