【问题标题】:GitHub Actions GIT_BRANCH environment variableGitHub 操作 GIT_BRANCH 环境变量
【发布时间】:2021-03-01 03:32:54
【问题描述】:

我有一个 GitHub 操作运行我的网络应用单元测试。我从此操作运行 CodeClimate 测试报告。

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

  • GIT_SHA
  • GIT_BRANCH

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

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

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

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

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

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

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

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

【问题讨论】:

  • (所以 tl;dr,您不需要在 github 操作中进行任何特殊的环境设置,变量已经存在)
  • 变量在那里是正确的,但不是在 CodeClimate 要求的名称下。补充一下,好像你不能根据另一个的值来设置环境。
  • ${{ env.GITHUB_BRANCH }} 例如应该可以工作
  • 看起来设置GIT_BRANCH: ${{ github.head_ref }} 可能有效。虽然不确定这是否适用于推送到主分支,因为这将发生在推送事件而不是 pull_request 事件

标签: git github-actions


【解决方案1】:

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

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

您不仅可以在工作流定义中实现相同的效果(设置环境变量),还可以通过在专用工作流步骤中动态设置变量来实现。您可以通过environment filesbuilt-in GITHUB_SHA and GITHUB_BRANCH variables 来实现:

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}"

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

【讨论】:

    【解决方案2】:

    确实,与其使用 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

    【讨论】:

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