如何将环境变量从第一阶段转移到第二阶段?
问题 -> 我从回显结果中得到一个空的“”值。
azure-pipeline.yml
trigger:
branches:
include:
- main
paths:
include:
- infra/*
- .pipelines/*
variables:
vmImageName: 'ubuntu-latest'
root: $(System.DefaultWorkingDirectory)
stages:
- stage: TakePITR
dependsOn: []
variables:
env: poc
jobs:
- job: GetPitrTime
steps:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$iso8601_time = Get-Date -Format "o"
echo "##vso[task.setvariable variable=pitr_time;isOutput=True]$iso8601_time"
name: PitrVar
displayName: "Get point-in-time before second stage"
- stage: TestOutputEnvVar
dependsOn: TakePITR
variables:
env: poc
PITR: $[ stageDependencies.TakePITR.GetPitrTime.outputs['PitrVar.pitr_time']]
jobs:
- job:
steps:
- script: |
echo $pitr_time
echo $PITR
displayName: 'echo value'
我不明白我在这里做错了什么。
最佳答案
您有缩进问题:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$iso8601_time = Get-Date -Format "o"
echo "##vso[task.setvariable variable=pitr_time;isOutput=true]$iso8601_time"
name: PitrVar
displayName: "Get point-in-time before second stage"
Name 和 displayName 应与输入处于同一级别,然后:
完整代码在这里
trigger:
branches:
include:
- main
paths:
include:
- infra/*
- .pipelines/*
variables:
vmImageName: 'ubuntu-latest'
root: $(System.DefaultWorkingDirectory)
stages:
- stage: TakePITR
dependsOn: []
variables:
env: poc
jobs:
- job: GetPitrTime
steps:
- task: PowerShell@2
name: PitrVar
displayName: "Get point-in-time before second stage"
inputs:
targetType: 'inline'
script: |
$iso8601_time = Get-Date -Format "o"
echo "##vso[task.setvariable variable=pitr_time;isOutput=true]$iso8601_time"
- stage: TestOutputEnvVar
dependsOn: TakePITR
variables:
env: poc
PITR: $[ stageDependencies.TakePITR.GetPitrTime.outputs['PitrVar.pitr_time']]
jobs:
- job:
steps:
- script: |
echo $pitr_time
echo $PITR
displayName: 'echo value'
关于azure - 如何使用环境变量将输出从一个阶段传递到下一阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70020755/