drone使用git tag作为镜像tag
官方自动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}
drone使用git tag作为镜像tag的更多相关文章
- 如何在K8s,Docker-Compose注入镜像Tag
最近在做基于容器的CI/CD, 一个朴素的自动部署的思路是: 从Git Repo打出git tag,作为镜像Tag ssh远程登录到部署机器 向部署环境注入镜像Tag,拉取镜像,重新部署 下面分享我是 ...
- git 创建tag , 查看tag , 删除tag
简介 用git了很久了,也喜欢这个版本控制工具,今天来分享下,怎么用命令创建tag,查看tag,删除tag和把本地tag推到远程git服务器上 C:\Users\\WandaPuHuiProject ...
- git 使用详解-- tag打标签
Git 的标签管理.跟大多数的 VCS 工具一样,git 也有在历史状态的关键点“贴标签”的功能,一般人们用这个功能来标记发布点(例如’v1.0′). 列出git中现有标签 要想列出git中现有的所有 ...
- git 如何同步本地tag与远程tag
问题场景:同事A在本地创建tagA并push同步到了远程->同事B在本地拉取了远程tagA(git fetch)->同事A工作需要将远程标签tagA删除->同事B用git fetch ...
- docker tag根据镜像id做标签,用于应用的回滚
示例 通过ID tag镜像 下面是tag一个id为0e5574283393的本地镜像到“fedora”存储库,tag名称version1.0: docker tag 0e5574283393 fedo ...
- git 本地tag和远程tag对应不上 vscode里pull不下代码
vscode拉取代码是用 git pull --tags origin saas-xxx > git pull --tags origin saas-base From 172.16.0.xx ...
- git 远程分支和tag标签的操作
git远程分支操作:1.创建远程分支git push --set-upstream origin develop:develop2在服务器创建远程分支devlop2,让本地的develop分支和dev ...
- c:param 标签后不要写 注释 。否则报错 Encountered illegal body of tag "c:import" tag, given its attributes
c:param 标签后不要写 注释 .否则报错 Encountered illegal body of tag "c:import" tag, given its attribu ...
- Render a controller in Twig - Unexpected “render” tag - expecting closing tag for the “block” tag defined
Render a controller in Twig - Unexpected “render” tag - expecting closing tag for the “block” tag de ...
随机推荐
- Elasticsearch写入数据的过程是什么样的?以及是如何快速更新索引数据的?
前言 最近面试过程中遇到问Elasticsearch的问题不少,这次总结一下,然后顺便也了解一下Elasticsearch内部是一个什么样的结构,毕竟总不能就只了解个倒排索引吧.本文标题就是我遇到过的 ...
- 退出cmd命令
中断cmd正在执行的任务:按 Ctrl+C退出cmd:exit最好不要直接关闭,而是用Ctrl+C中断任务后在关闭,以免造成程序运行异常.
- 简易发号SQL,可用于生成指定前缀自增序列--改进版
使用merge语法实现新增or更新 首先创建表 CREATE TABLE Test.dbo.Increments ( Prefix varchar(50) NOT NULL, [MaxNum ] bi ...
- [hdu7022]Jsljgame
先考虑$x=y$的情况,此时即是一个平等博弈,因此考虑$sg$函数 具体的,有$sg(n)=\begin{cases}0&(n=0)\\mex(\{sg(n-i)\mid 1\le i\le ...
- [gym103055H]Grammy and HearthStone
题目即要求构造一个长为$2n$的序列$a_{i}$,满足$\forall 1\le i\le n$,$i$恰好出现两次,假设分别是$a_{x}=a_{y}=i(x<y)$,即要求$y-x=i$ ...
- [atARC076E]Connected
首先,如果没有这个平面的限制,考虑不断插入一对点,将与这两点连线有交的线从左到右,依次"移动"到左端点边上,因此一定是可行的 但当存在界限后,对于两个端点都在边界上的点对(一个端点 ...
- [loj3052]春节十二响
首先可以发现对于两条链来说,显然是对两边都排好序,然后大的配大的,小的配小的(正确性比较显然),最后再加入根(根只能单独选)这个结果其实也可以理解为将所有max构成一条新的链,求出因此,对于每一个结点 ...
- 4、使用SetOperations(无序)操作redis(Set集合)
文章来源:https://www.cnblogs.com/shiguotao-com/p/10560599.html 方法 c参数 s说明 Long add(K key, V... values); ...
- 掌握Java的内存模型,你就是解决并发问题最靓的仔
摘要:如果编写的并发程序出现问题时,很难通过调试来解决相应的问题,此时,需要一行行的检查代码,这个时候,如果充分理解并掌握了Java的内存模型,你就能够很快分析并定位出问题所在. 本文分享自华为云社区 ...
- ☕【Java深层系列】「技术盲区」让我们一起完全吃透针对于时间和日期相关的API指南
技术简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda.文章主要对java日期处理的详解,用1.8可以不用joda. 时间概念 首先我们对一些基本的概念 ...