分支名称
获取不带/ref/*
前缀的分支或标签名称。
目录
特性
- 获取不带任何前缀的当前分支名称。(例如:
'refs/heads/main'
->'main'
) - 获取当前标签,可选择去除前缀(例如:
v0.0.1
->v
->0.0.1
) - 检测由非默认分支触发的操作
- 检测由默认分支触发的操作
- 支持所有有效的git分支名称
使用方法
...
steps:
- name: 获取分支名称
id: branch-names
uses: tj-actions/branch-names@v8
- name: 在默认分支上运行
if: steps.branch-names.outputs.is_default == 'true'
run: |
echo "在默认分支上运行: ${{ steps.branch-names.outputs.current_branch }}"
# 输出: "在默认分支上运行: main"
- name: 在拉取请求分支上运行
if: steps.branch-names.outputs.is_default == 'false'
run: |
echo "在PR上运行: ${{ steps.branch-names.outputs.current_branch }}"
# 输出: "在PR上运行: feature/test"
- name: 在拉取请求分支上运行
if: steps.branch-names.outputs.is_default == 'false'
run: |
echo "基础分支: ${{ steps.branch-names.outputs.base_ref_branch }}"
# 输出: "基础分支: main"
- name: 在任何事件上运行
run: |
echo "默认分支: ${{ steps.branch-names.outputs.default_branch }}"
# 输出: "默认分支: main"
如果您愿意慷慨一些并想表示额外的感谢:
请为这个项目点个 :star:
输入
- uses: tj-actions/branch-names@v8
id: branch-names
with:
# 应该从标签中去除的前缀
# 例如 `v` -> 对于标签
# `v0.0.1` -> 返回 `0.0.1`
# 类型: 字符串
strip_tag_prefix: ''
输出
输出 | 类型 | 描述 |
---|---|---|
base_ref_branch | 字符串 | 拉取请求或标签的目标分支, 例如 main |
current_branch | 字符串 | 无论事件类型如何的当前分支名称, 例如 main , feature/test |
default_branch | 字符串 | 默认分支名称,例如 main 或 master |
head_ref_branch | 字符串 | 拉取请求的源分支, 例如 feature/test |
is_default | 字符串 | 如果当前分支是默认分支则返回"true" ,否则返回 "false" . |
is_tag | 字符串 | 如果当前分支是标签则返回"true" ,否则返回 "false" . |
ref_branch | 字符串 | 触发工作流运行的分支. 例如 1/merge , main |
tag | 字符串 | 触发工作流运行的标签. 例如 v0.0.1 , 0.0.1 |
事件
push*
on:
push:
branches:
- main
...
steps:
- name: 获取分支名称
id: branch-names
uses: tj-actions/branch-names@v8
- name: 当前分支名称
run: |
echo "${{ steps.branch-names.outputs.current_branch }}"
# 输出: "main" 触发推送事件的分支。
- name: 在默认分支上运行。
if: steps.branch-names.outputs.is_default == 'true'
run: |
echo "在默认分支上运行: ${{ steps.branch-names.outputs.current_branch }}"
# 输出: "在默认分支上运行: main"。
- name: 在默认分支上运行(即非基于标签的分支)。
if: steps.branch-names.outputs.is_tag == 'false' && steps.branch-names.outputs.is_default == 'true'
run: |
echo "在分支上运行: ${{ steps.branch-names.outputs.current_branch }}"
# 输出: "在分支上运行: main"。
- name: 获取Ref分支名称
run: |
echo "${{ steps.branch-names.outputs.ref_branch }}"
# 输出: "main"
- name: 默认分支名称
run: |
echo "${{ steps.branch-names.outputs.default_branch }}"
# 输出: "main" 默认分支。
pull_request*
on:
pull_request:
branches:
- main
...
steps:
- name: 获取分支名称
id: branch-names
uses: tj-actions/branch-names@v8
- name: 当前分支名称
run: |
echo "${{ steps.branch-names.outputs.current_branch }}"
# 输出: "feature/test" 当前PR分支。
- name: 在非基于标签的分支和PR分支上运行。
if: steps.branch-names.outputs.is_default == 'false'
run: |
echo "在分支上运行: ${{ steps.branch-names.outputs.current_branch }}"
# 输出: "在分支上运行: feature/test"。
- name: 在拉取请求上运行(即非基于标签的分支)。
if: steps.branch-names.outputs.is_tag == 'false' && steps.branch-names.outputs.is_default == 'false'
run: |
echo "在分支上运行: ${{ steps.branch-names.outputs.current_branch }}"
# 输出: "在分支上运行: feature/test"。
- name: 获取Ref分支名称
run: |
echo "${{ steps.branch-names.outputs.ref_branch }}"
# 输出: "1/merge"
- name: 获取Head Ref分支名称(即当前拉取请求分支)
run: |
echo "${{ steps.branch-names.outputs.head_ref_branch }}"
# 输出: "feature/test" 当前PR分支。
- name: 获取Base Ref分支名称(即拉取请求的目标)
run: |
echo "${{ steps.branch-names.outputs.base_ref_branch }}"
# 输出: "main"。
- name: 默认分支名称
run: |
echo "${{ steps.branch-names.outputs.default_branch }}"
# 输出: "main" 默认分支。
tag*
on:
push:
tags:
- '*'
...
steps:
- name: 获取分支名称
id: branch-names
uses: tj-actions/branch-names@v8
with:
strip_tag_prefix: v # 可选择从标签中去除开头的 `v`。
- name: 在标签分支上运行。
if: steps.branch-names.outputs.is_tag == 'true'
run: |
echo "运行于: ${{ steps.branch-names.outputs.tag }}"
# 输出: "运行于: 0.0.1"。
- name: 获取当前标签
if: steps.branch-names.outputs.is_tag == 'true' # 替换: startsWith(github.ref, 'refs/tags/')
run: |
echo "${{ steps.branch-names.outputs.tag }}"
# 输出: "0.0.1"
其他支持的事件
查看 .github/workflows/test.yml 获取更多示例。
与 actions/checkout 的可能用法
on:
pull_request:
branches:
- develop
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: 获取分支名称。
id: branch-names
uses: tj-actions/branch-names@v8
- uses: actions/checkout@v4
with:
ref: ${{ steps.branch-names.outputs.head_ref_branch }}
- 免费软件: MIT 许可证
致谢
本包是使用 Cookiecutter 创建的。
报告错误
在 https://github.com/tj-actions/branch-names/issues 报告错误。
如果您要报告一个错误,请包括:
- 您的操作系统名称和版本。
- 任何可能有助于排除故障的工作流程详细信息。
- 重现该错误的详细步骤。
贡献者 ✨
感谢这些出色的人(表情符号键):
本项目遵循all-contributors规范。欢迎任何形式的贡献!