发布部署
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: []