如何配置GitHub Actions工作流运行标题以始终显示提交信息?
自定义GitHub Actions工作流运行名称,始终显示提交信息
要让所有触发类型(PR、定时、手动)的工作流运行都显示提交信息,你可以使用GitHub Actions的run-name字段,结合环境变量和Git命令动态生成运行名称。
配置步骤
在你的ci.yaml中添加run-name字段,并通过条件判断和命令适配不同触发场景:
name: CI Workflow # 自定义运行名称,适配不同触发场景 run-name: >- ${{ github.event_name == 'pull_request' ? format('PR #{0}: {1}', github.event.pull_request.number, github.event.pull_request.title) : format('Commit {0}: {1}', github.sha, github.event.head_commit?.message || steps.commit_msg.outputs.msg) }} on: pull_request: branches: [ main ] schedule: - cron: '0 0 * * *' # 定时触发示例:每天凌晨运行 workflow_dispatch: # 允许手动触发 jobs: build: runs-on: ubuntu-latest steps: - name: 拉取代码 uses: actions/checkout@v4 with: fetch-depth: 1 # 确保能获取最新提交信息 # 当head_commit.message不存在时(定时/手动触发),通过Git命令获取提交信息 - name: 获取提交信息 id: commit_msg if: github.event.head_commit.message == '' run: echo "msg=$(git log --format=%B -n 1 ${{ github.sha }})" >> $GITHUB_OUTPUT
配置说明
- PR触发场景:保留原有逻辑,显示PR编号和标题,和GitHub默认行为一致。
- 定时/手动触发场景:
- 用
github.sha获取当前提交的哈希值。 - 如果
github.event.head_commit.message不存在(定时/手动触发无此字段),通过git log命令提取最新提交的消息,再传递给run-name。
- 用
- fetch-depth设置:必须设为
1或更大,否则无法拉取提交历史,Git命令会执行失败。
这样配置后,无论哪种触发方式,工作流运行名称都会包含对应的提交哈希和消息,统一显示风格。
内容的提问来源于stack exchange,提问作者Ant
相关产品推荐
相关产品推荐

