企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
build项目从code server获取代码,publish用于发布新版本 ### 项目拓扑 ![](http://om4h63cja.bkt.clouddn.com/17-6-2/58353814.jpg) ## jenkins端 ### build项目 拉取代码后,生成latest版本信息,生成live版本信息,和对应版本压缩包的md5。 ~~~ APP_NAME=wordpress DEPLOY_DIR=/alidata/www/jenkins/$APP_NAME/ TAR_NAME=$APP_NAME-$version.tar.gz if [ ! -e $DEPLOY_DIR ]; then mkdir -p $DEPLOY_DIR;fi tar cf $DEPLOY_DIR$TAR_NAME $APP_NAME-$version # 生成md5 MD5_FILE=$APP_NAME-$version.md5 md5sum $DEPLOY_DIR$TAR_NAME | cut -d" " -f1 > $DEPLOY_DIR$MD5_FILE # 生成最新版本记录 LATEST_VERSION_FILE=${DEPLOY_DIR}latest_list.txt printf "%-10s%s %s\n" $version $(date "+%Y-%m-%d %H:%M:%S") >> $LATEST_VERSION_FILE ~~~ ![](http://om4h63cja.bkt.clouddn.com/17-6-2/88419650.jpg) ### publish项目 发布指定的版本 ~~~ APP_NAME=wordpress DEPLOY_DIR=/alidata/www/jenkins/$APP_NAME/ LATEST_VERSION_FILE=${DEPLOY_DIR}latest_version.txt TAR_NAME=$APP_NAME-$version.tar.gz # 查看版本是否已经build if [ -e $LATEST_VERSION_FILE ]; then if ! grep -q "\<$version\>" $LATEST_VERSION_FILE; then echo "the version $version is not in $LATEST_VERSION_FILE" exit 1 fi if [ ! -e $DEPLOY_DIR$TAR_NAME ]; then echo "the version $DEPLOY_DIR$TAR_NAME you want to release dosen't not exist." exit 2 fi fi # 生成最新版本记录 LIVE_VERSION_FILE=${DEPLOY_DIR}live_list.txt printf "%-10s%s %s\n" $version $(date "+%Y-%m-%d %H:%M:%S") >> $LIVE_VERSION_FILE ~~~ ![](http://om4h63cja.bkt.clouddn.com/17-6-2/96180782.jpg) --- ## web服务器端 使用python脚本在web服务器端实现以下功能。 ~~~ 1 apache认证功能 2 应用版本控制 3 记录更新日志 4 记录上一个稳定版本 5 脚本锁定,一次只能运行一个脚本 ~~~