Github 如何使用工作流读取标记名\u运行

Github 如何使用工作流读取标记名\u运行,github,continuous-integration,github-actions,continuous-delivery,Github,Continuous Integration,Github Actions,Continuous Delivery,我将Github操作用于两个工作流:CI和CD。CI工作流针对新标签(如v1.1.1)触发,并请求开发和热修复分支 name: CI on: push: tags: v[1-9]+.[0-9]+.[0-9]+ pull_request: branches: [develop, hotfix*] 当上一个工作流(CI)完成时,将触发CD工作流 name: CD on: workflow_run: workflows: ['CI'] pus

我将Github操作用于两个工作流:CI和CD。CI工作流针对新标签(如
v1.1.1
)触发,并请求开发和热修复分支

name: CI

on:
  push:
    tags: v[1-9]+.[0-9]+.[0-9]+
    
  pull_request:
    branches: [develop, hotfix*]
当上一个工作流(CI)完成时,将触发CD工作流

name: CD

on:
  workflow_run:
    workflows: ['CI']
    push:
      tags: v[1-9]+.[0-9]+.[0-9]+
    types:
      - completed
目前,我的目标是根据新标记的名称生成包(Docker图像)。我正在尝试使用以下操作读取CD工作流中的新标记名:

但我得到了以下错误:

Run dawidd6/action-get-tag@v1
env:
  IMAGE_NAME: open-tuna-api
Error: Not a tag ref (refs/heads/master)

我的问题是:如何读取CI工作流后触发的CD工作流中的标记名?

首先,您可以使用
${GITHUB_REF###*/}
获取标记,而无需使用操作

样本测试工作流:

name: Experiment

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Debug
      run: echo "Works. Tag is ${GITHUB_REF##*/}"

至于您提到的链接工作流-我不确定是否可以获得祖先工作流的标记,因为提到它是在默认分支上触发的,最后一次提交是在该分支上。

Hi@DannyB!看来你是对的。无法使用
workflow\u run
获取标记名。您知道实现此目标的任何其他方法(在由
workflow\u run
触发的工作流中使用标记名)。也许可以将标记名设置为第一个工作流的输出。。。谢谢我想不出一个方法来做,尽管我完全理解这个需要。也许可以在GitHub论坛上展开讨论。
name: Experiment

on:
  push:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Debug
      run: echo "Works. Tag is ${GITHUB_REF##*/}"