我的 GitHub 项目中有 2 个不同的工作流程:
预期的场景是,一旦创建标签,前一个工作流程(发布)必须触发后一个工作流程(docker 镜像)。
前一个工作流程运行以下命令:
- name: Build with Maven to release current SNAPSHOT version
run: mvn -B release:clean release:prepare release:perform --file pom.xml
在 Docker 镜像工作流程中,我测试了以下 3 个事件,但没有成功:
name: Java CI with Maven to create and publish Docker image
on:
release:
types:
- created
create:
tags:
- '**'
push:
# Pattern matched against refs/tags
tags:
- '**'
创建标签以便触发 Docker 映像工作流程的正确事件是什么?
需要解决的要点 确保正确的触发事件:
类型为 [created] 的发布事件在创建发布时起作用(通过 GitHub UI 或 API),但它不一定会在标签创建时触发,除非显式生成发布。 带标签的推送事件:“**”适用于推送到存储库的标签。 在发布工作流程中正确推送标签:
标签必须推送到远程存储库才能激活推送触发器。 工作流程依赖性:
使用workflow_run 在另一个工作流程成功完成后触发一个工作流程。 更新的工作流程
yaml 复制代码 名称:发布工作流程
在: 工作流程_调度:
工作: 发布: 运行:ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build with Maven to release current SNAPSHOT version
run: mvn -B release:clean release:prepare release:perform --file pom.xml
- name: Push tags
run: |
git push --tags