drone 使用git tag触发构建

配置ref为tag

.drone.yml中配置trigger为ref

trigger:
  ref:
  - refs/tags/FileService

或者配置when为ref

when:
  ref:
  - refs/tags/FileService

注意: trigger应用于整个pipeline, when应用于step

也就是trigger会触发这条pipeline,而when决定了跑这条pipeline时会不会跳过这个step

ref是数组,可以配置多个

trigger:
  ref:
  - refs/tags/FileService
  - refs/tags/IdentityService

也支持通配符 refs/tags/** 表示所有的tag, refs/tags/v* 表示v开头的tag

还支持include包含 和exclude排除, 下面的代码表示包含IdentityService和File开头的tag, 除了FileService

trigger:
  ref:
    include:
    - refs/tags/IdentityService
    - refs/tags/File*
    exclude:
    - refs/tags/FileService

 

git 添加和推送tag

在完成代码提交和推送到远程后,对刚刚推送的提交添加tag

git tag -f FileService
git push -f origin FileService

两行命令都加-f参数,表示强制覆盖.因为同名tag只能有一个,所以更新需要覆盖之前的.第一行是为最近的提交添加一个名为FileService的tag,第二行是推送到远程仓库. 推送完成才会触发对应的pipeline

 

总结: 这种用tag触发对应pipeline的方式适用于单分支进行多pipeline构建,而多分支直接用branch作为trigger或when的参数更好. 

注意: drone不支持同时使用tag和branch作为触发条件

posted @ 2021-09-17 17:02  turingguo  阅读(1552)  评论(0编辑  收藏  举报