赞
踩
「流水线」,又名「Flow」,是阿里云「云效」产品矩阵中的一款企业级自动化研发交付工具。
它提供了灵活易用的持续集成、持续验证和持续发布功能,旨在帮助企业高质量、高效率地交付业务。
流水线充当了持续交付的工具,通过构建自动化、集成自动化、验证自动化和部署自动化的过程,实现了从开发到上线的持续交付。
方法一:打开 代码管理,选择代码库:
然后在右侧选择对应的代码库点击进去,选择流水线:
在右侧点击创建流水线。
方法二:打开 流水线,选择我的流水线:
在右侧点击新建流水线。
选择模板进行创建:
选择代码源,我的代码库就是codeup,也可以选择别的代码源。
选择服务连接,如果没有就新建服务连接。
然后,选择正确的代码仓库和需要部署的分支。
工作目录可以为默认的目录。
点击右上角的仅保存。
展开任务步骤里面的Java构建,选择正确的JDK版本和Maven版本。
展开任务步骤里面的构建物上传,其它默认,打包路径可以修改为自己实际的项目路径。
选好制品,然后新建主机组:
我是选择的阿里云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,然后就运行流水线吧。搞定!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。