一、持续集成及其意义
二、配置
三、构建结束后发布到指定web server
shell script:
(1)部署war例子
#!/bin/bash
# $1 is project name (e.g., "MDM-Server")
# $2 is development host name
# $3 is context name
if
[ $
# -lt 3 ] ; then
echo
"Usage: $0 <project> <host> <context> [module]"
echo
exit
-1
fi
PROJECT=$1
DEV_HOST=$2
CONTEXT=$3
if
[ $
# -gt 3 ] ; then
MODULE=$4
fi
if
[
"x${MODULE}"
==
"x"
] ;
then
ARTIFACT_SRC=`
ls
/var/lib/hudson/jobs/
${PROJECT}
/workspace/target/
*.war`
else
ARTIFACT_SRC=`
ls
/var/lib/hudson/jobs/
${PROJECT}
/workspace/
${MODULE}
/target/
*.war`
fi
TOMCAT_DIR=
"tomcat-${CONTEXT}"
ARTIFACT_DEST=builder@${DEV_HOST}:
/opt/
${TOMCAT_DIR}
/webapps/
${CONTEXT}.war
scp
${ARTIFACT_SRC} ${ARTIFACT_DEST}
if
[ $? -
ne
"0"
] ;
then
exit
2
fi
|
(2)部署js到指定目录下,可由nginx代理
#!/bin/bash
# $1 is project name (e.g., "Domain-UI")
# $2 is resource server name
# $3 is context name
# $4 is javascript lib directory
if
[ $
# -lt 4 ] ; then
echo
"Usage: $0 <project> <server> <context> <js_dir>"
echo
exit
-1
fi
PROJECT=$1
RES_SERVER=$2
CONTEXT=$3
JSLIB_DIRNAME=$4
JSLIB_TAR=jslib.
tar
cd
/var/lib/hudson/jobs/
${PROJECT}
/workspace/src/main/webapp
tar
cf ${JSLIB_TAR} ${JSLIB_DIRNAME}
REMOTE_DIR=
/var/lib/web/oncloud/
${CONTEXT}
scp
${JSLIB_TAR} builder@${RES_SERVER}:${REMOTE_DIR}/${JSLIB_TAR}
ssh
${RES_SERVER}
"cd ${REMOTE_DIR} && tar xf ${JSLIB_TAR}"
ssh
${RES_SERVER}
"rm -rf ${REMOTE_DIR}/2.0-SNAPSHOT; mv ${REMOTE_DIR}/${JSLIB_DIRNAME} ${REMOTE_DIR}/2.0-SNAPSHOT"
ssh
${RES_SERVER}
"rm -f ${REMOTE_DIR}/${JSLIB_TAR}"
rm
-f ${JSLIB_TAR}
if
[ $? -
ne
"0"
] ;
then
exit
2
fi
|