zoukankan      html  css  js  c++  java
  • 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为[11.01.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}

  • 相关阅读:
    注册、登录、忘记密码实战
    python3错误:format() takes at most 2 arguments
    Charles手机抓包简要步骤
    VARCHAR2(N CHAR)与VARCHAR2(N)的区别
    关于VI一些常用的操作
    LINUX下 基于 Socket 的 UDP 和 TCP 编程具体实现
    VC++6.0实现文本格式的转换保存
    crt的sftp使用用于Windows与Linux之间的通讯
    pl/sql 导出脚本与使用
    在oracle10g下启动服务报 Permission denied错误解决方法
  • 原文地址:https://www.cnblogs.com/turingguo/p/15305900.html
Copyright © 2011-2022 走看看