如何在 Github Action Shell 脚本中获取分支名称

rod*_*dev 1 yaml github-actions

我正在尝试创建一个输出以供稍后在工作中使用。

但是,由于某种原因,BRANCH我要使用的 env 变量GITHUB_REF_NAME是一个空字符串,根据文档,它应该是分支。

直接使用变量也会产生相同的结果。

      - name: Set Terraform Environment Variable
        id: set_tf_env
        env:
          BRANCH: ${{env.GITHUB_REF_NAME}}
        run: |
          if [ "$BRANCH" == "dev" ]; then
              run: echo "::set-output name=TF_ENV::dev"
              elif [ "$BRANCH" == "prod" ]; then
              run: echo "::set-output name=TF_ENV::prod"
          else
              echo "Branch has no environment"
              exit 1
          fi

Run Code Online (Sandbox Code Playgroud)

rod*_*dev 6

因此,经过更多研究并感谢评论,我发现了它不起作用的原因。

这是因为我在 Pull Request 中触发了 GitHub 操作,但我没有提及这一点。

所以我最终使用的是:

github.event.pull_request.head.ref
Run Code Online (Sandbox Code Playgroud)