文章目录
- 前言
- 一、准备项目代码
- 1.默认的项目
- 2.浏览器访问
- 二、使用步骤
- 1.进入工作台
- 2.创建流水线
- 3.代码源
- 4.代码扫描
- 5.单元测试
- 6.代码构建
- 7.主机部署
- 8.部署脚本
- 三、运行测试
- 1.运行流水线
- 2.测试报告
- 3.访问项目
- 总结
前言
「流水线」,又名「Flow」,是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。
提示:上面简述来自:阿里云。个人理解就是流水线Flow 自动化部署,类似于 Jenkins,是开发中的一种可持续集成工具,代码检测,支持多种语言部署,废话不多说不说,上操作。
下面开始演示从0 - 1 项目部署发布整个环节
一、准备项目代码
1.默认的项目
- Codeup-Demo
- 拉取代码【不会的可以看这一篇】阿里云效产品【代码管理Codeup】企业项目代码管理
- 看到代码是一个SpringBoot项目
- 项目启动,默认端口【8080】
2.浏览器访问
- 浏览器访问 http://localhost:8080/ 里面有个接口【浏览器随机数打印两句话】
@RestController
public class P3cScannerController {
@RequestMapping("/")
public String index() {
Random R = new Random();
int randInt = R.nextInt();
if (randInt % 2 == 0)
return HelloWorld;
return HELLO_WORLD;
}
private static final ExecutorService THREAD_EXECUTOR = Executors.newSingleThreadExecutor();
private String HelloWorld = "Welcome to Codeup";
private static final String HELLO_WORLD = "Nice to meet you";
}
- 刷新浏览器,即会重新掉一次接口
二、使用步骤
1.进入工作台
- 点击运行【流水线】
2.创建流水线
- 选择项目对于的开发语言,点击创建
3.代码源
-
选择代码源【这里可以有多种选择,我这里选阿里的这个Codeup】
-
上图中:您配置流水线源的源文件将会被下载至工作目录下。如填写demo_abc,则流水线会将文件下载至构建环境的/root/workspace/demo_abc路径下
-
默认路径是在:
/root/workspace/
-
demo_abc : 这个名字可以自定义
4.代码扫描
- Java代码扫描
5.单元测试
- Maven单元测试【maven 打包命令不局限于此,可自行添加或删除修改,根据项目需要】
6.代码构建
- 这里需要注意的是,假如是微服务项目,项目中有多个子模块,这里需要注意
target
路径地址 - 举例
general 父模块
├─general-admin 系统模块
│ ├─general-admin-client
│ └─general-admin-server
├─general-auth 授权认证模块
│ ├─general-auth-client
│ └─general-auth-server
├─general-commons 公共模块
│ ├─general-commons-base-core 核心模块【base】
│ ├─general-commons-job 任务调度
│ ├─general-commons-oss 文件存储
│ ├─general-commons-sms 消息通讯
- 写法
general/general-admin/general-admin-server/target/
general/general-auth/general-auth-server/target/
后面的以此类推.........
- 代码构建【】
7.主机部署
- 主机部署【右边新建主机】
- 这里选择主机类型【我这里是腾讯云的服务器】大家可以根据自己的服务器来进行选择
- 添加主机【复制命令,在自己发服务器中执行:一定要是root权限】
提示 : 这个命令只是一个案例,具体还是以自己生成的为准
bash <(curl http://agent-install-default.oss-cn-hangzhou.aliyuncs.com/production-install.sh) 'http://devops.aliyuncs.com/api/getSnByRegion?regionId=46e8e93a-1696-4e71-8563-fc64b07de17b&sign=mlzDn1GYyPRyHN0RXf%2FunQ%3D%3D&aliyunRegion=default×tamp=1671120883579&scope=flow' http://agent-install-default.oss-cn-hangzhou.aliyuncs.com/production-agent.tgz http://devops.aliyuncs.com/api/verifySnAndRegionId?sign=afe3vxJl6A7jxvDde9p%2BYw%3D%3D 46e8e93a-1696-4e71-8563-fc64b07de17b 1671120883579 default
- 执行命令,安装完成如下图
- 安装后等待几秒钟,这里就会显示刚刚添加的服务器
- 详细配置
- 部署配置-下载路径:
/home/admin/app/package.tgz
点击运行流水线的时候,服务器会会从Git中拉取代码,并打包,打包后的文件名称为 :package.tgz
,所以在部署脚本可以将这个文件解压完后选择性的删除 - 执行用户:这里根据服务器分配的权限来定,一般使用
root
8.部署脚本
- 官网介绍:点击访问
- 因为实际的部署脚本已经打包到了构建产出的压缩包中,因此部署脚本可以简单的进行解压和执行即可
- 首先创建一个目录【存放部署脚本
deploy.sh
,及项目jar
文件】
mkdir -p /home/admin/application
# 解压到 temp 临时目录下
tar zxvf /home/admin/app/package.tgz -C /home/admin/app/
# 执行部署脚本
sh /home/admin/application/deploy.sh restart
-
写部署脚本【
deploy.sh
】前,首先需要知道项目打包后的名称是什么,idea中打包测试 -
deploy.sh 脚本内容
#!/bin/bash
PID_CODEUP=$(ps -ef | grep codeup-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID_FXIAOKE" ]
then
echo codeup-demo-0.0.1-SNAPSHOT.jar 服务已关闭。
else
echo 正在关闭codeup-demo-0.0.1-SNAPSHOT.jar 服务,进程ID为:$PID_CODEUP
kill $PID_CODEUP
fi
echo 删除历史版本
rm -rf /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar
echo /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar
echo 正在移动项目文件
sudo mv -f /home/admin/app/temp/codeup-demo-0.0.1-SNAPSHOT.jar /home/admin/application/
echo /home/admin/app/temp/codeup-demo-0.0.1-SNAPSHOT.jar /home/admin/application/
echo 删除临时生产的文件
rm -rf /home/admin/app/
echo 服务codeup-demo-0.0.1-SNAPSHOT.jar正在启动中........
nohup java -jar -XX:+UseG1GC -Xms128m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=512m /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar >/dev/null 2>&1 &
- 脚本简述:
1、首先去根据这个项目名称去查找当前以启动的线程,然后使用kill命令,停止该进程。
2、删除之前的历史版本
3、在解压后的文件中,找到jar文件并移动至指定目录下。
4、删除生成的临时文件。
5、启动项目【这里根据自己的项目添加 JVM 运行参数大小】
三、运行测试
1.运行流水线
- 点击右上方【运行】
2.测试报告
- 如下图
3.访问项目
-
浏览器访问项目:ip:8080
-
项目部署成功!
总结
以上就是内容为个人部署发布的内容,本文仅仅是简单介绍了流水线的玩法,大家有更好的玩法可以留言相互讨论。