drone使用git tag作為映象tag
阿新 • • 發佈:2021-09-17
官方自動tag
plugin/docker 已支援自動標籤,使用方法如下
steps: - name: docker image: plugins/docker settings: repo: foo/bar auto_tag: true
其中的auto_tag: true就是啟用自動tag
如果是git tag觸發的構建,則會自動使用git tag作為映象tag, 並且會自動分割主版本號和副版本號
如git tag是1.0.0 則映象tag為[1
,1.0
,1.0.0
]
如git tag是1.0.0-rc.1 則映象tag為1.0.0-rc.1
如果是通過push觸發且分支是預設分支(如master或main), 則映象tag為latest
配置tag字尾
steps: - name: docker image: plugins/docker settings: repo: foo/bar auto_tag: true auto_tag_suffix: linux-amd64
auto_tag_suffix: linux-amd64 表示映象tag字尾為linux-amd64
自定義tag規則
自動tag如果不能滿足則需要自定義tag規則
steps: - name: docker image: plugins/docker settings: repo: foo/bar tags: ${DRONE_TAG##v}
${DRONE_TAG##v}就表示從DRONE_TAG中移除v, 如git tag是v1.0.0 則映象tag是1.0.0 移除了v
從上一篇文章瞭解到瞭如何通過git tag觸發構建, 這裡就可以搭配使用
steps: - name: docker image: plugins/docker settings: repo: foo/bar tags: ${DRONE_TAG##FileService-}
trigger:
ref:
- ref/tags/FileService-*
git tag 為FileService-1.0.0 觸發構建, 映象tag為1.0.0
drone目前支援的字串操作來自於gnu的 shell parameter expansion
${parameter^} 首字母大寫 ${parameter^^} 整個字串轉為大寫 ${parameter,} 首字母小寫 ${parameter,,} 整個字串轉為小寫 ${parameter:position} 從position開始擷取字串 從0開始計數 如 abcd:2 結果就是cd ${parameter:position:length} 從position開始擷取length長度 ${parameter#substring} ${parameter##substring} ${parameter%substring} ${parameter%%substring} ${parameter/substring/replacement} ${parameter//substring/replacement} ${parameter/#substring/replacement} ${parameter/%substring/replacement} ${#parameter} ${parameter=default} ${parameter:=default} ${parameter:-default}
其中我們使用的 ${DRONE_TAG##v} 就是其中的${parameter##substring}