【问题标题】:How to check if a secret variable is empty in if conditional Github Actions如何在条件 Github Actions 中检查秘密变量是否为空
【发布时间】:2022-01-11 21:35:55
【问题描述】:

上下文

我想在执行作业之前检查我的工作流程是否存在秘密。

类似这样的:

publish:
    runs-on: ubuntu-latest
    if: secrets.AWS_ACCESS_KEY_ID != ''
    steps:
      [ ... ]

但是,我在使用这个表达式时遇到了这样的错误:

The workflow is not valid. .github/workflows/release.yml (Line: 11, Col: 9): Unrecognized named-value: 'secrets'...

我尝试了什么

我试着用另一种方式写表达式:

if: ${{ secrets.AWS_ACCESS_KEY_ID != '' }}
if: ${{ secrets.AWS_ACCESS_KEY_ID }} != ''

问题

如何在 Github Actions 工作流程中实现我想要的?

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    Github Action 解释器目前在if 条件表达式中使用时无法识别secrets 关键字。因此,您不能在那里使用secrets.VARIABLE 语法。

    this issue discussion 找到的解决方法是首先将密钥复制到环境变量中

    示例:

    steps:
       env:
         MY_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }}
       if: "${{ env.MY_KEY != '' }}"
       run: echo "This command is executed if AWS_ACCESS_KEY_ID secret IS NOT empty"
    

    如果您需要在作业级别执行此操作,则需要创建一个 check-secret 作业来验证机密,然后将结果作为输出共享。

    示例:

      check-secret:
          runs-on: ubuntu-latest
          outputs:
            my-key: ${{ steps.my-key.outputs.defined }}
          steps:
              - id: my-key
                if: "${{ env.MY_KEY != '' }}"
                run: echo "::set-output name=defined::true"
                env:
                    MY_KEY: ${{ secrets.AWS_ACCESS_KEY_ID }}
    
      job1:
          runs-on: ubuntu-latest
          needs: [check-secret]
          if: needs.check-secret.outputs.my-key == 'true'
          steps:
            - run: echo "This command is executed if AWS_ACCESS_KEY_ID secret IS NOT empty"
    
      job2:
          runs-on: ubuntu-latest
          needs: [check-secret]
          if: needs.check-secret.outputs.my-key != 'true'
          steps:
            - run: echo "This command is executed if AWS_ACCESS_KEY_ID secret IS empty"
    

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2021-06-10
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 2011-05-20
      • 2021-02-12
      • 2012-02-05
      相关资源
      最近更新 更多