「流水线」,又名「Flow」,是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。
提示:上面简述来自:阿里云。个人理解就是流水线Flow 自动化部署,类似于 Jenkins,是开发中的一种可持续集成工具,代码检测,支持多种语言部署,废话不多说不说,上操作。

下面开始演示从0 - 1 项目部署发布整个环节


@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";
}




选择代码源【这里可以有多种选择,我这里选阿里的这个Codeup】 
上图中:您配置流水线源的源文件将会被下载至工作目录下。如填写demo_abc,则流水线会将文件下载至构建环境的/root/workspace/demo_abc路径下
默认路径是在: /root/workspace/
demo_abc : 这个名字可以自定义


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/
后面的以此类推.........




提示 : 这个命令只是一个案例,具体还是以自己生成的为准 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 ,所以在部署脚本可以将这个文件解压完后选择性的删除rootdeploy.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" ]
thenecho codeup-demo-0.0.1-SNAPSHOT.jar 服务已关闭。
elseecho 正在关闭codeup-demo-0.0.1-SNAPSHOT.jar 服务,进程ID为:$PID_CODEUPkill $PID_CODEUP
fiecho 删除历史版本
rm -rf /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jar
echo /home/admin/application/codeup-demo-0.0.1-SNAPSHOT.jarecho 正在移动项目文件
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 运行参数大小】


浏览器访问项目:ip:8080
项目部署成功!
以上就是内容为个人部署发布的内容,本文仅仅是简单介绍了流水线的玩法,大家有更好的玩法可以留言相互讨论。