【问题标题】:Declaration and usage of Output Variable in Azure DevopsAzure Devops 中输出变量的声明和使用
【发布时间】:2020-04-27 04:51:31
【问题描述】:

我正在创建一个使用 Bash 脚本任务的持续集成管道,以便为运行时创建初始变量。

我有一个变量,我称之为:datebuild,相应的格式为:$(date +%Y%m%d_%H%M%S)

目前我正在使用管道变量,这就是我声明它的方式 在Bash@3任务下使用datebuild变量时,格式化成功。

之后我想获取格式化的输出,以便将其用于在一个代理工作中的不同任务。

在第二个任务中,我需要将文件复制到工件暂存目录:

例如,20200423_141808 是文件,Artifact Staging Directory 是目标目录。

我一直在阅读它可以与称为输出变量的功能一起使用。

创建了名为:ref1 的引用变量,并且在任务中我想获取输出变量,我使用ref1.datebuild 来访问该变量

使用以下documentation 来使用它似乎不起作用的输出变量。

这是管道内的任务:

试图了解我错过了什么。

【问题讨论】:

    标签: azure azure-devops azure-pipelines


    【解决方案1】:

    您可以获取格式化的日期并将其设置为作业中后续步骤的变量。

    例如,在 YAML 管道中:

    variables:
      datebuild: '$(date +%Y%m%d_%H%M%S)'
    
    steps:
    - bash: |
       formated="$(datebuild)"
       echo "##vso[task.setvariable variable=formatedDate]$formated"
    
    - bash: |
       echo $(formatedDate)
    

    在编辑器中:

    第二个bash任务输出是:

    【讨论】:

    • 嘿,我已经尝试过这种方法,但有一个问题,我正在获取一个在一项任务中创建的文件并对其进行一些操作,但为了这样做,我需要得到第一个任务创建的特定格式化日期,这意味着如果它的 000000_000001 并且根据您对以下任务的方法,它将采用格式化时间,例如 000000_000010。
    • 您可以将变量设置为您想要的任何值,因此您可以将其编辑为您需要的值 (000000_000001),而不是设置 formated 值,然后设置变量。
    猜你喜欢
    • 1970-01-01
    • 2021-09-04
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多