【问题标题】:Github Actions Functions on the console output控制台输出上的 Github Actions 函数
【发布时间】:2020-04-09 05:19:38
【问题描述】:

假设我想验证我的代码不包含foo 字符串。所以我正在使用 Linux grep 工具并使用 wc -l 计算输出行数。

现在我只想运行一个步骤if grep | wc -l 的结果等于0

我怎样才能做到这一点?

【问题讨论】:

    标签: bash github-actions


    【解决方案1】:

    这应该可以解决问题。

    job:
     steps:
     - run:   echo ::set-env name=GHA_COUNTER::$(grep "thing" code.h | wc -l)
       shell: bash
     - run: echo "There's a thing in my code!"
       if:  env.GHA_COUNTER == '0'
    

    ::set-envgrep | wc 的结果推送到env 上下文,这是if 需要工作的内容。

    如果您不想因任何原因污染环境,::set-output 是另一种选择。

    job:
     steps:
     - run:   echo ::set-output name=things::$(grep "thing" code.h | wc -l)
       id:    counter
       shell: bash 
     - run: echo "There's a thing in my code!"
       if:  steps.counter.outputs.things == '0'
    

    【讨论】:

      【解决方案2】:

      您只需确保运行 grep 的命令未成功退出,然后在下一步中使用 if: success()

      所以 grep 任务可以使用类似:[ $(grep 'foo' action.ts | wc -l) = 0 ]。 如果输出不为零,则命令将以非零状态退出。

      在依赖的任务中,使用if: success(),只有上一个任务成功,这个任务才会运行。

      【讨论】:

        猜你喜欢
        • 2021-09-25
        • 2021-03-20
        • 2020-03-13
        • 1970-01-01
        • 2020-05-26
        • 1970-01-01
        • 2021-11-05
        • 2010-12-12
        • 1970-01-01
        相关资源
        最近更新 更多