发布部署

1、上传制品

用于将暂存构建物上传到制品库中永久保留

  • 可视化配置
    上传制品
  • yml
    # 将构建插件的暂存构建物上传到制品库 - step: publish@general_artifacts  name: publish_general_artifacts  displayName: 上传制品  # 上游构建任务定义的产物名,默认BUILD_ARTIFACT  dependArtifact: BUILD_ARTIFACT  # 构建产物制品库,默认default,系统默认创建  artifactRepository: default  # 上传到制品库时的制品命名,默认build  artifactName: output 

2、发布

“发布”是一个重要概念,表示当前这个制品可以上线,“发布”操作Gitee Go中的核心概念,他有以下特点:

  • 发布插件依赖于 “上传制品” 插件

  • 发布插件会为制品打一个四位版本号(例如 1.0.0.1)版本号

  • 发布插件的四位版本号逻辑如下

    • 版本号是代码库级别的,默认从1.0.0.0开始
    • 每个版本号不允许重复发布,每次发布自增第四位版本号
    • 您可以自己更改yml中的版本号,如由1.0.0.1改成2.0.2.1,那么本次发布的版本号就是2.0.2.1,下次发布的版本号是2.0.2.2
    • 每次发布会对当前提交打Tag,Tag的格式为 v1.0.0.1
  • 当制品发布的时候,首先获取当前发布插件中的版本号,查看此版本号是否在代码库中已经使用过,如未使用过,可以直接发布;如果已经使用,则获取autoIncrement字段,如果是true,则获取当前代码库中最大的版本号,并在第四位+1后发布;如果是false,则发布失败,因为当前版本号冲突,请修改或者将autoIncrement设置为true,版本号将会自增。
    制品库发布记录

  • 可视化配置
    发布

  • yml

    - step: publish@release_artifacts  name: publish_release_artifacts  displayName: '发布'  # 上游上传制品任务的产出  dependArtifact: output  # 发行版制品库,默认release,系统默认创建  artifactRepository: release  # 发布制品版本号  version: '1.0.0.0'  # 是否开启版本号自增,默认开启  autoIncrement: true

3、主机部署

支持暂存产物、制品库内产物、发布产物自动下载到指定主机组,并执行指定脚本

  • 可视化配置
    主机部署
  • yml
- step: deploy@agent  name: deploy_agent  displayName: 主机部署  # 目标主机组  hostGroupID: gitee-go  deployArtifact:  # 部署包来源,build表示来源于上游流水线,artifact表示来源于制品仓库,默认artifact  - source: artifact  # 将部署包下载到主机后的部署包名,默认output  name: output  # 将部署包下载主机的具体目录,默认 ~/gitee_go/deoloy  target: ~/gitee_go/deoloy  # 上游制品名,只有当source为build时生效,默认output  dependArtifact: output  # 以下内容只有在source为artifact时生效,制品库名,默认release  artifactRepository: release  # 制品名,默认output  artifactName: output  # 制品版本,默认取最新  artifactVersion: latest  script:   |  cd ~/gitee_go/deploy  tar -zxvf output.tar.gz  ls  echo 'Hello Gitee!'

4、主机滚动部署

支持暂存产物、制品库内产物、发布产物自动下载到指定主机组,并按批次执行指定脚本

  • 可视化配置
    输入图片说明
version: '1.0' name: pipeline-20220609 displayName: pipeline-20220609 triggers:  trigger: auto  push:  branches:  prefix:  - '' stages:  - name: stage-a9b5230b  displayName: 未命名  strategy: naturally  trigger: auto  executor: []  steps:  - step: rolling@agent  name: rolling_deploy  displayName: 主机滚动部署  hostGroupID: gitee-go  rollingNum: 1/2  script: echo 'success'  strategy:  retry: '0' permissions:  - role: admin  members: []