gpt4 book ai didi

azure-devops - 如何从天蓝色管道中的管道资源获取变量值

转载 作者:行者123 更新时间:2023-12-05 04:43:12 27 4
gpt4 key购买 nike

基本上,我有 2 个单独的 Azure 管道(CI、CD)。而且,我只为 CI 管道启用了触发器。一旦 CI(构建)管道完成,它应该触发 CD 管道。而且,我正在 CI 管道中传递参数和变量。但是,我也想在 CD 管道中使用相同的 CI 参数值。

### CI Pipeline ###
parameters:
- name: environment
displayName: 'Choose Environment'
type: string
default: Dev
values:
- Dev
- Qa
- Stage
- Demo
- Live

variables:
- group: PoC-Web
- group: PoC-Secrets
- name: version

在 CI 管道中,我使用环境参数并声明版本变量。现在,我想在 CD 管道中利用这些值。

### CD Pipeline ###
resources:
pipelines:
- pipeline: web-ci
source: PoC-Web-CI
trigger:
branches:
include:
- cicd/azure-pipelines
- develop
stages:
- stage: 'Package_Deploy'
jobs:
- deployment: 'Deploy_to_Server'
environment: 'PoC-Web.PoC_WEB_SERVER'
strategy:
rolling:
deploy:
steps:
- task: CmdLine@2
inputs:
script: |
echo "Fetching CI Pipeline Environment Variables"
echo "Pipeline-ID: $(resources.pipeline.web-ci.pipelineID)"
echo "Source-Commit: $(resources.pipeline.web-ci.sourceCommit)"
echo "Version: $(resources.pipeline.web-ci.version)"
echo "Version: $(resources.pipeline.web-ci.variables.version)"
echo "environment: $(resources.pipeline.web-ci.parameters.environment)"
echo "environment: $(resources.pipeline.web-ci.templateParameters.environment)"

在上面的 CD 管道中,我能够获取管道 ID 和 Source-Commit(即预定义变量)。但无法获取用户定义的变量和参数值,如版本和参数。

如能尽早回复,我们将不胜感激。

最佳答案

对于您的情况,我会使用管道工件。您可以在此处找到完整说明 https://tsuyoshiushio.medium.com/how-to-pass-variables-with-pipeline-trigger-in-azure-pipeline-5771c5f18f91

在 CI 管道中

将所有必要的变量导出到文本文件,然后将其发布为工件。

  - task: CmdLine@2
displayName: Create artifact from variables
inputs:
script: |
echo "##vso[task.setvariable variable=FOO;]$(FOO)" > $(Build.ArtifactStagingDirectory)/pipeline.env
- task: PublishBuildArtifacts@1
displayName: publish variables
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'variables'
publishLocation: 'Container'

在 CD 管道中

创建一个任务,它将下载包含变量的工件。

- task: DownloadBuildArtifacts@0
displayName: 'Download variables'
inputs:
buildType: 'specific'
project: '<YOUR_PROJECT_ID_HERE>'
pipeline: '<YOUR_PIPELINE_ID_HERE>'
buildVersionToDownload: 'latest'
downloadType: 'specific'
downloadPath: '$(System.ArtifactsDirectory)'

关于azure-devops - 如何从天蓝色管道中的管道资源获取变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69682204/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com