[英]GitHub Actions GIT_BRANCH environment variable
我有一个 GitHub 操作正在运行我的 Web 应用程序单元测试。 我从此操作运行 CodeClimate 测试报告。
CodeClimate 需要设置两个环境变量才能正确发送报告。 这些是;
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_SHA
和GITHUB_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.