| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 使用 Bamboo 构建项目的 CICD 过程文档 -> 正文阅读 |
|
[系统运维]使用 Bamboo 构建项目的 CICD 过程文档 |
一、CI/CD 介绍CI/CD 是什么?
CI/CD 中文叫:持续集成,持续交付/部署,是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署,“ 持续 ” 并不意味着 “ 一直在运行 ” ,而是“随时可运行”。 持续集成:Continuous integration,CI 持续集成(CI)旨在通过对每次提交的代码进行自动化的代码检查,单元测试,编译构建,甚至自动部署与发布,可以有力的避免 “ 集成地狱 ” 问题 持续交付:Continuous delivery,CD 在一次集成的基础上,将集成后的代码部署到更贴近真实运行环境中,持续交付并不是指软件的每一个改动都要尽快的部署到生产环境,它是指任何的修改都已证明可以在任何时候实施部署,这就是为什么持续交付是手动部署的,比如:一种业务场需要等待另外的功能特征出才能上线,这时候就没必要上生产环境 持续部署:Continuous Deployment,CD 在一次交付的基础上,把最新的代码部署到生产环境 集成地狱:交付团队的成员集成一些未合并的代码,也就是一大堆的提交到一个指定的时间点来合并,这种集成的过程很少是流畅和无缝的,经常会出现各种合并的BUG,导致数小时甚至数天来修复代码,以便它能够最终集成 使用了 CI/CD 之后会怎么样传统开发模式存在的问题
CI/CD 给我们带来的好处
二、Atlassian - Bamboo 介绍
简介Atlassian Bamboo 是一款持续集成和持续部署工具,可以将自动化构建、测试和发布整合在单个工作流中 Bamboo 的安装下载Atlassian 官网 下载 Bamboo 就好了【注意是免费试用 30 天的】 配置Bamboo 的目录结构配置 Bamboo 的 home 目录
运行 Bamboo
进去之后就会初始化一些东西,跟着页面操作就好了,这里提的一点是选择 Bamboo 的数据源是 MySQL 的话,需要将 MySQL 的连接驱动放在 Bamboo 的依赖库里面,eg:将 配置 Agent前面步骤配置好了其实还差一步,因为 Bamboo 的每个 Stage(后面会讲) 运行的 Job 需要在一个代理执行器里面执行,这里我使用了 bamboo 推荐的 Bamboo 的特点1、简单的用户界面,容易安装 2、自动检测你的设置-如果你的 Server 上使用了 Maven、Ant 或者 Java 设置,Bamboo 会自动检测出来 3、连续的日志,检测你的 build 的 Colour Coded 日志,容易显示出所有项目和最后一次 build 的结果摘要列表 4、当 build 被触发时,会显示触发 build 的源代码变更 Bamboo 的工作原理实际上就是 CI/CD 的工作机理,简单点讲就是开发者提交完代码之后自动触发编译、单元测试、集成测试、打包和部署至服务器的一系列过程,由以下的图片简单描述 ? CI/CD 工作机理 Bamboo 的使用? 自动构建计划 解释说明: 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 是顺序执行的。 三、项目从创建到自动部署实战首先看下测试应用之前的运行效果: CI 配置创建 ProjectBuild Plan 需要基于 Project 创建,所以需要先创建一个 Project 创建并配置 Build Plan创建 Build Plan配置 Build Plan配置 Stage配置 Job不添加 Job 直接点击 Save and continue 继续下一步,如果需要添加 Job,则点击 Create 配置 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
同样的操作,给 Package Stage 配置一个 Package Job 之后,再给它配置一个 Package Task,这里就不列出图片,只需更改如下设置就行 **
配置 ArtifactArtifact: 是项目编译打包之后的产物,Bamboo 这里需要配置所需要的产物文件,以供后续的阶段可以使用,需要提供哪几个 artifact 是根据后续部署/交付任务所需的资源决定的,例如,对于后续开发环境的持续交付,这里需要 Dockerfile、docker-compose-{部署环境}.yml、Application(可执行 jar) 构建好之后: 到这里,我们 CI(持续集成)配置完毕! CD 配置创建 Deployment project配置 Deployment Project创建部署环境添加一个部署环境 这一步很重要,主要设置两步,Set up tasks 和 添加一个触发整个构建流程的动作 完成部署的 Task 配置当点击了 Set up tasks 之后,出现如下配置,这里主要添加如下 Task:
以上 3 个 Task 的详细配置
配置触发构建 Trigger
到此我们的 CD(持续交付/部署)配置也完成! 执行流程代码更改代码提交将代码提交到仓库,触发构建流程 构建日志CI(持续集成)日志CD(持续部署)日志访问接口 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 23:02:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |