繁体   English   中英

GitHub 操作 GIT_BRANCH 环境变量

[英]GitHub Actions GIT_BRANCH environment variable

我有一个 GitHub 操作正在运行我的 Web 应用程序单元测试。 我从此操作运行 CodeClimate 测试报告。

CodeClimate 需要设置两个环境变量才能正确发送报告。 这些是;

  • GIT_SHA
  • GIT_BRANCH

GitHub 操作通过github.sha通过 github 上下文使 git commit sha 可用,因此我可以像这样在操作上设置环境变量;

env:
    GIT_SHA: ${{ github.sha }}

但是 github 操作不会使分支名称可用。

它确实提供了一个名为GITHUB_REF的默认环境变量,这是完整的引用,但我知道我可以使用这种速记语法$GITHUB_REF##*/获取短引用,即分支名称

我遇到的问题是我无法使用此值设置名为 GITHUB_BRANCH 的环境变量$GITHUB_REF##*/

有谁知道我如何获取分支名称并将其设置为环境变量GIT_BRANCH以便 CodeClimate 测试脚本能够使用它。

最终我希望我的 env 配置看起来像这样:

env:
    GIT_SHA: <git commit sha>
    GIT_BRANCH: <current git branch>

最终我希望我的 env 配置看起来像这样:

 env: GIT_SHA: <git commit sha> GIT_BRANCH: <current git branch>

您不仅可以在工作流定义中实现相同的效果(设置环境变量),还可以通过在专用工作流步骤中动态设置变量来实现相同的效果。 您可以通过环境文件内置的GITHUB_SHAGITHUB_BRANCH变量来完成

jobs:
  set-env:
    runs-on: ubuntu-latest
    steps:
      - name: Set environment variables
        run: |
          echo "GIT_SHA=${GITHUB_SHA}" >> $GITHUB_ENV
          echo "GIT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
      - name: Use environment variables
        run: |
          echo "GIT_SHA=${GIT_SHA}"
          echo "GIT_BRANCH=${GIT_BRANCH}"

执行工作流应该给你输出:

在此处输入图片说明

实际上,与其使用 GITHUB_REF,不如使用 GITHUB_HEAD_REF 或 GITHUB_BASE_REF 来找出真正的分支名称(最重要的是,如果工作流与 PR 相关联):

输出示例:

    GITHUB_REF="refs/pull/4/merge"
    GITHUB_BASE_REF="main"
    GITHUB_HEAD_REF="key_advertisement"

更多信息: https : //docs.github.com/en/actions/learn-github-actions/contexts#github-context

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM