【问题标题】:boolean env var in Github actionsGithub 操作中的布尔环境变量
【发布时间】:2021-10-10 11:10:16
【问题描述】:

我有一个布尔环境变量 TAG_EVENT,我在其中一个步骤中将其更新为 false(我也打印它,但我看到它为 false),但由于某种原因,尽管 TAG_EVENT 为 false,但最后一步并未执行。感谢您的帮助,

on:
 workflow_dispatch:

 env:
 TAG_EVENT: ${{ true }}

 jobs:
   push_images:
   name: Push images
   runs-on: ubuntu-latest
   if: ${{ github.event_name != 'pull_request' }}
   steps:
   - id: version
     name: Infer version
     run: |
        version="${GITHUB_REF#refs/tags/v}"
        echo $version
        if  [[ $version == refs/* ]] ;
         then
           echo 'TAG_EVENT=false' >> $GITHUB_ENV
           branch="${GITHUB_REF#refs/heads/}"
           version=$branch

       fi
       echo ::set-output name=version::$version
   - name: Publish latest image tag for release
     if: github.event_name != 'pull_request' && TAG_EVENT == false
     run: |
       echo "printme!!!"

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    尝试在第二个 if 语句中使用 ${{ env.TAG_EVENT == false }}

    【讨论】:

      【解决方案2】:

      当您使用像 bash 这样的基于文本的 shell 时,您将不得不处理字符串。因此,您将无法检查false,但需要检查'false'。但我建议使用 GitHub 的内置 toJSONfromJSON 函数来编组布尔值:

      ...
      steps:
        - name: I produce a boolean output
          id: output_producer
          shell: bash
          run: |
            if [[ $RANDOM > 100 ]]; then i=true; else i=false; fi
            echo "::set-output name=boolean_output::${{ toJSON($i) }}"
            echo "::set-output name=integer_output::${{ toJSON($i) }}"
        - name: I run conditionally on that boolean
          if: fromJSON(steps.output_producer.outputs.boolean_output) 
          shell: bash
          run: |
            echo "Ran successfully!"
        - name: I run always
          if: always()
          shell: bash
          run: |
            echo ${{ fromJSON(steps.output_producer.outputs.integer_output) }}
      

      【讨论】:

        【解决方案3】:

        输入上下文与 GitHub Actions 中处理布尔值的方式之间存在一些不一致。我对此有一个简短的记录。希望对您有所帮助

        GitHub Actions: Passing Boolean input variables to reusable workflow_call

        【讨论】:

        • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 2022-11-10
        • 2021-03-01
        • 1970-01-01
        • 2022-06-16
        • 2021-01-07
        • 1970-01-01
        • 2021-01-25
        • 2021-02-16
        • 2021-11-19
        相关资源
        最近更新 更多