如何在作业条件规则中使用变量 [英] How to use variable in job conditional rule

查看:0
本文介绍了如何在作业条件规则中使用变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要在以下条件下运行作业: (上一个作业输出返回一个字符串,例如";This is sometext";)

- name: some job
  if: contains(${{steps.previous-step.outputs.someoutput}}, 'sometext')
  run: echo 'is executed'

问题是始终执行此作业,因此即使steps.previous-step.outputs.someoutput不包含预期文本,条件也始终为True。

但如果我使用内部没有变量的CONTAINS函数,它总是有效的,例如 contains('some other text', 'sometext')

推荐答案

if表达式使用contains函数时,不需要${{ }}

正确的语法是:

  job1:
      runs-on: ubuntu-latest
      steps:
          - id: step1
            run: echo "::set-output name=test::hello"
          - name: step2
            if: contains(steps.step1.outputs.test, 'hello')
            run: echo 'is executed'
          - name: step3
            if: contains(steps.step1.outputs.test, 'not_hello')
            run: echo 'not executed'

此处,将执行step2,但不执行step3

如果您想查看,我在this workflow run (job7)中做了一个例子。

这篇关于如何在作业条件规则中使用变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆