本篇就来介绍关于自动编译项目的工具-Bamboo。

Atlassian 全称是 Atlassian Open DevOps Utils,它包括 Jira、Confluence、Bitbucket、Bamboo、Crowd

1.简介

Atlassian Bamboo 是一款持续集成构建服务器软件(Build Server)(非开源软件)。 可见Bamboo也是Atlassian公司的产品,跟前面的JIRA及后面提到的FishEye和Confluence都是一家人。

官网文档

Bamboo documentation | Bamboo Server 8.1 | Atlassian Documentation

理解CI server工作机理,简单点讲就是开发者提交完代码后自动触发编译/单元测试/集成测试/打包/部署至服务器等一系列过程.

解释说明:

1、Project 是一个项目的构建计划的集合,管理某个项目的所有 Plan

2、计划(Plan)则是 Stage、Task 和 Job 的集合,一个构建计划。当创建一项计划的时候,会为它赋予一个唯一主键,说明从哪个库中(或者哪些库中)提取代码,然后选择它的触发器如使用每次发布定期构建,等等。也有将几个管理选项设置成全局缺省值并在计划层次调整。这些选项包括权限、通知、日志和构建清除、提升构建标准、以及变量。

3、阶段(Stage)代表一个阶段,按规定次序进行,并行的处理 Job(用多个 Agent ),只有所有的 Job 成功,才会进入下一个 Stage,用来控制工作流的执行,例如可以将构建分为编译,测试开发。阶段之前可以定义前后级关系从而控制执行。可能会产生 Artifact(项目打包之后的产物),供后续的 Stage 使用

4、由多个 Task 可以组成一个 Job,在同一个 Job 的代理服务器上,顺序执行多个 Task。

5、Task 是进行自动化构建的基本块,这些任务可以检查源代码,运行脚本,构建引擎的调用,如 Ant,Maven以及生成报表等,Task 是顺序执行的。
 

 

Task是进行自动化构建的基本块,这些任务可以检查源代码,运行脚本,构建引擎的调用,如ant,maven以及生成报表等。 task是顺序执行的。

由多个task可以组成一个job,job则是在build的代理机器上运行的任务的集合。阶段则是更大一级的概念,用来控制工作流的执行,例如可以讲构建分为编译,测试开发等,而job则可以将不同阶段分为更小的批处理单元。阶段之前可以定义前后级关系从而控制执行。 计划则是task,job一级stage的集合。当创建一项计划的时候,您会为它赋予一个唯一主键,说明从哪个库中(或者哪些库中)提取代码,然后选择它的触发器——使用每次发布定期构建,等等。也有将几个管理选项设置成全局缺省值并在计划层次调整。这些选项包括权限、通知、日志和构建清除、提升构建标准、以及变量

① Project
    1)提供报告、展板、连接

  |——② Plan
      1)指定默认代码仓库(同一个仓库)

      2)构建触发条件的配置

      3)构建结果的发送与通知

      4)可配置该plan的权限管理

    |——③ Stage
        1)并行的处理job(用多个agent)

        2)只有所有的job成功,才会进入下一个stage

        3)可能会产生artifact,供后续的stage使用

      |——④ Job
          1)同一个代理上,顺序执行多个task

          2)控制task的执行顺序

          3)收集作业中单个任务的需求,以便这些需求可以和代理的能力相匹配

          4)定义生成的artifact

          5)只能使用上一个stage产出的artifact

          6)为构建结果或构建的artifact指定label

        |——⑤Task
            1)作业中最小的执行单元,比如:运行脚本、分析执行结果等

            2)顺序执行
————————————————

项目从创建到自动部署实战

1、CI 配置

创建 Project

Build Plan 需要基于 Project 创建,所以需要先创建一个 Project

 

2、创建并配置 Build Plan

创建 Build Plan

 

配置 Build Plan 

在这里插入图片描述

3、配置 Stage

配置 Job

不添加 Job 直接点击 Save and continue 继续下一步,如果需要添加 Job,则点击 Create

 在这里插入图片描述

 这里配置两个阶段:Test Stage 和 Package Stage,测试和打包阶段

 1、Test stage 是进行测试的阶段,测试任务都放在这个阶段中进行, 创建 Build plan 后会存在一个 Default Stage,可以直接将其名称改为 Test Stage,同时也可以将默认的 Default Job 更名为 Test Job

2、Package Stage 是进行项目打包阶段,测试阶段完成之后,所有的项目打包工作都在这里进行 

Task 类型

点击 Add Task,弹出各种 Task 类型,这里我们主要使用了 Maven3.X(Maven 的构建操作) 、SSH Task (SSH 命令操作)以及 SCP Task(文件上传,拷贝操作)

 配置 Task 注意事项

 在这里插入图片描述

给 Test Stage 的 Test Job 添加 Maven 测试 Task

在这里插入图片描述 在这里插入图片描述

clean test

 同样的操作,给 Package Stage 配置一个 Package Job 之后,再给它配置一个 Package Task,这里就不列出图片,只需更改如下设置就行 **

配置 Artifact
Artifact: 是项目编译打包之后的产物,Bamboo 这里需要配置所需要的产物文件,以供后续的阶段可以使用,需要提供哪几个 artifact 是根据后续部署/交付任务所需的资源决定的,例如,对于后续开发环境的持续交付,这里需要 Dockerfile、docker-compose-{部署环境}.yml、Application(可执行 jar)
在这里插入图片描述

构建好之后:
在这里插入图片描述

CD 配置

创建 Deployment project

在这里插入图片描述

 配置 Deployment Project

创建部署环境,添加一个部署环境

 在这里插入图片描述

在这里插入图片描述 这一步很重要,主要设置两步,Set up tasks 和 添加一个触发整个构建流程的动作

在这里插入图片描述

 

完成部署的 Task 配置
当点击了 Set up tasks 之后,出现如下配置,这里主要添加如下 Task:

SSH Task:在部署服务器上的项目根目录
SCP Task:将 artifact 上下载的文件上传到项目目录
SSH Task:构建 Docker 镜像,停止之前运行的容器,重新跑新镜像
在这里插入图片描述

以上 3 个 Task 的详细配置 

 在这里插入图片描述

TEMP_PATH="/tmp/build-xh-test-qiukm/xh-test-qiukm"
if [ ! -d $TEMP_PATH ];
    then mkdir $TEMP_PATH
fi

 在这里插入图片描述

在这里插入图片描述 

TEMP_PATH="/tmp/build-xh-test-qiukm/xh-test-qiukm/"
NAME="whalex-ms-test-dev"
YAML="docker-compose-dev.yml"
PROJECT_NAME="whalex-cluster-test-dev"
TAG="release-"${bamboo.buildNumber}
cd $TEMP_PATH
if [[ -a ".env" ]];
then rm -rf .env
fi
echo IMG_TAG=$TAG >> .env
docker build -t $NAME:$TAG .
docker-compose -f $YAML -p $PROJECT_NAME stop;
docker-compose -f $YAML -p $PROJECT_NAME up -d

 配置触发构建 Trigger

在这里插入图片描述

在这里插入图片描述 在这里插入图片描述

到此我们的 CD(持续交付/部署)配置也完成!

执行流程

CI(持续集成)日志

 在这里插入图片描述

在这里插入图片描述 

参考链接:使用 Bamboo 构建项目的 CICD 过程文档_嘎油啊~的博客-CSDN博客_bamboo持续集成icon-default.png?t=M1H3https://blog.csdn.net/qq_42378797/article/details/121003255?spm=1001.2101.3001.6650.9&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9.pc_relevant_default&utm_relevant_index=12 

 

下载bamboo(正版需要购买,现在只有试用版)

Download Bamboo | Atlassian

开发者云平台

Cloud developer documentation - Atlassian Developer

API文档地址

Atlassian Bamboo Plan Specs 7.1.4 API

Logo

DEVPOD社区,旨在打造高质量的DevOps工具知识库。包括商业工具:Atlassian Jira,Confluence,Jfrog,极狐, CodeBeamer等。开源工具栈如:Gitlab,ArgoCD, Jenkins等。 致力于帮助企业建实现云原生时代DevOps转型。

更多推荐