GitHub Actions GIT_BRANCH 环境变量

标签 git github-actions

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

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

  • GIT_SHA
  • GIT_BRANCH

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

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

然而,github actions 并没有使分支名称可用。

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

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

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

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

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

最佳答案

Ultimately I want my env config to look like this:

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

您不仅可以在工作流定义中实现相同的效果(设置环境变量),还可以通过在专用工作流步骤中动态设置变量来实现。你可以通过 environment files 来完成和 built-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}"

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

enter image description here

关于GitHub Actions GIT_BRANCH 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64883366/

相关文章:

git - 了解git冲突

ios - 忽略存储库中的 CocoaPods 库

github-actions - 为什么 shell for 循环在 github actions 中不起作用

git - 如何在特定日期后获取所有提交 ID 并仅显示已更改的文件?

Git + 轨道 : How to restore files deleted with "git rm -r"?

github - 如何在github操作中访问github标签消息

docker - 将图像推送到 Github 包会抛出 "denied: not_found: owner not found"

Angular 应用程序无法使用 GitHub 操作 ('Cannot find module' 构建)

git - 如何添加没有 master 分支的 git 子模块?

bash - 使用 GitHub Actions 循环多个文件