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作爲觸發條件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章