【问题标题】:Use environment variable in github action if如果在 github 操作中使用环境变量
【发布时间】:2022-05-03 22:53:09
【问题描述】:

我正在尝试在 github 操作中的 if 条件中使用环境变量,如下所示:

name: Worfklow
on:
  push

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1

      - name: EXIT step
        if: $GITHUB_REF == 'specific-branch'
        run: exit 1

如果当前分支等于特定分支,我想退出。

很遗憾,github 操作控制台显示错误:

Unexpected symbol: '$GITHUB_REF'

我可以在run:(其中包含当前分支)中使用$GITHUB_REF,但不能在if: 中使用。我做错了什么?

【问题讨论】:

    标签: github-actions


    【解决方案1】:

    虽然最初的问题已经在没有环境变量的情况下解决了,但我想分享一下如何在 if 条件下使用它。

    jobs:
      deploy:
        runs-on: ubuntu-latest
        steps:
    
          - name: Set env BRANCH
            run: echo "BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)" >> $GITHUB_ENV
    
          - name: Set env NEED
            run: |
              if [[ $BRANCH == 'master' && $GITHUB_EVENT_NAME == 'push' ]]; then
                  echo "NEED=true" >> "$GITHUB_ENV"
              else
                  echo "NEED=false" >> "$GITHUB_ENV"
              fi
    
          - name: Skip Deploy?
            if: env.NEED != 'true'
            run: echo "Only pushing to 'master' causes automatic deployment"
    
         ...
    

    前两步设置了 2 个环境变量,第三步演示了在 if 条件下使用这些变量需要遵循的语法。

    【讨论】:

    【解决方案2】:

    这样做:

    if: github.ref == 'specific-branch'
    

    参考branch conditional

    【讨论】:

    • 一句警告:github.ref 将存储当前分支或标记 ref。这取决于导致工作流的操作。来源:help.github.com/en/actions/…
    • 这并不能回答所提出的实际问题,尽管它是如何从if: 访问环境变量...如果它真的是一个环境变量而不是你可以去获取的东西,如何做到这一点来自魔术github 上下文?
    【解决方案3】:

    你可以对action的push部分使用一些限制

    on:
      push:
        branches:    
          - '*'         # matches every branch that doesn't contain a '/'
          - '*/*'       # matches every branch containing a single '/'
          - '**'        # matches every branch
          - '!master'   # excludes master
    

    此答案取自this stack overflow question

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 2021-03-01
      • 1970-01-01
      • 2021-01-07
      • 2022-01-04
      • 2021-10-10
      • 2021-02-16
      • 2022-06-16
      • 2021-11-19
      相关资源
      最近更新 更多