目录
- 前言
- 一、部署应用步骤
- 1、创建流水线
- 2、编辑流水线源
- 3、编辑java构建上传
- 4、编辑主机部署
前言
「流水线」,又名「Flow」,是阿里云「云效」产品矩阵中的一款企业级自动化研发交付工具。
它提供了灵活易用的持续集成、持续验证和持续发布功能,旨在帮助企业高质量、高效率地交付业务。
流水线充当了持续交付的工具,通过构建自动化、集成自动化、验证自动化和部署自动化的过程,实现了从开发到上线的持续交付。
一、部署应用步骤
1、创建流水线
方法一:打开 代码管理,选择代码库:
然后在右侧选择对应的代码库点击进去,选择流水线:
在右侧点击创建流水线。
方法二:打开 流水线,选择我的流水线:
在右侧点击新建流水线。
选择模板进行创建:
2、编辑流水线源
选择代码源,我的代码库就是codeup,也可以选择别的代码源。
选择服务连接,如果没有就新建服务连接。
然后,选择正确的代码仓库和需要部署的分支。
工作目录可以为默认的目录。
点击右上角的仅保存。
3、编辑java构建上传
展开任务步骤里面的Java构建,选择正确的JDK版本和Maven版本。
展开任务步骤里面的构建物上传,其它默认,打包路径可以修改为自己实际的项目路径。
4、编辑主机部署
选好制品,然后新建主机组:
我是选择的阿里云ECS,按步骤走下去。
然后写好下载路径(我一般放在jar包目录的上一层目录中)。
然后是部署脚本,我是启的两个进程,我的脚本如下:
set -e;
if [ -f "/home/test/test-api/test-api.sh" ]; then /home/test/test-api/test-api.sh stop prod8094 8094; fi;
mkdir -p /home/test/test-api;
tar xf /home/test/test-api.tgz -o -C /home/test/test-api;
chmod +x /home/test/test-api/test-api.sh;
/home/test/test-api/test-api.sh restart prod8094 8094;
echo "Sleep for a while to wait the 1st instance is ready."
i=40
while test $i -ge 0; do
sleep 1
echo $((i--))
done
echo "Wake up, restart the 2nd instance..."
if [ -f "/home/test/test-api/test-api.sh" ]; then /home/test/test-api/test-api.sh stop prod8095 8095; fi;
/home/test/test-api/test-api.sh restart prod8095 8095;
test-api.sh文件内容:
SERVICE_DIR=/home/test/test-api
SERVICE_NAME=test-api
SPRING_PROFILES_ACTIVE=$2
case "$1" in
start)
procedure=`ps -ef | grep -w "${SERVICE_NAME}" |grep -w "java"| grep -v "grep" | grep $3 | awk '{print $2}'`
if [ "${procedure}" = "" ];
then
echo "start ..."
if [ "$2" != "" ];
then
SPRING_PROFILES_ACTIVE=$2
fi
echo "spring.profiles.active=${SPRING_PROFILES_ACTIVE}"
exec nohup java -Dfile.encoding=utf-8 -jar ${SERVICE_DIR}/${SERVICE_NAME}\.jar --spring.profiles.active=${SPRING_PROFILES_ACTIVE} >${SERVICE_DIR}/log.log 2>&1 &
echo "start success"
else
echo "${SERVICE_NAME} is start"
fi
;;
stop)
procedure=`ps -ef | grep -w "${SERVICE_NAME}" |grep -w "java"| grep -v "grep" | grep $3 | awk '{print $2}'`
if [ "${procedure}" = "" ];
then
echo "${SERVICE_NAME} is stop"
else
kill -9 ${procedure}
sleep 1
argprocedure=`ps -ef | grep -w "${SERVICE_NAME}" |grep -w "java"| grep -v "grep" | grep $3 | awk '{print $2}'`
if [ "${argprocedure}" = "" ];
then
echo "${SERVICE_NAME} stop success"
else
kill -9 ${argprocedure}
echo "${SERVICE_NAME} stop error"
fi
fi
;;
restart)
$0 stop
sleep 1
$0 start $2
;;
*)
echo "usage: $0 [start|stop|restart] [dev|test|prod]"
;;
esac
把test-api.sh文件,放到服务器对应的目录/home/test/test-api里。
注意要给此文件访问权限:
chmod 777 /home/test/test-api/test-api.sh
配置好Nginx,然后就运行流水线吧。搞定!