目标: 在GitLab提交代码之后,Jenkins会自动构建。
如果Jenkins上有类似任务,可以直接选择“根据一个已经存在的任务创建”
(1)填写描述。
(2)填写GitLab链接
(3)添加有权限的GitLab用户
(4)构建触发器,勾选“GitLab有push的时候自动构建”选项
(5)在4的子目录最下面,点击“高级”
(6)点击Generate,生成Secret token,记住这个token
(7)构建配置,默认填写如下内容:(-P 为pom.xml配置选择,可不选)
clean package -Dmaven.test.skip=true -U -P test -X -e
微服务架构需要填写如下内容:
clean package -U -DskipTests=true -P dev -pl 包名:服务名 -am
(8)Post Steps,选择“只有在构建成功和不稳定的时候执行”选项,增加“执行Shell”模块,编写执行脚本。
执行脚本示例:
echo "post build"
MODULE_NAME="test"
MODULE_FILE_NAME="test"
MAVEN_PROFILE=""
APP_USER=root
DEPLOY_SERVER=192.168.1.190
ssh -t ${APP_USER}@${DEPLOY_SERVER} "\
if [ \
! -e /home/${APP_USER}/myapp/${MODULE_NAME} \
];\
then \
mkdir /home/${APP_USER}/myapp/${MODULE_NAME}/\
;fi"
scp ${WORKSPACE}/${MODULE_NAME}/target/${MODULE_FILE_NAME}.jar \
${APP_USER}@${DEPLOY_SERVER}:/home/${APP_USER}/myapp/${MODULE_NAME}/
sleep 1
ssh -t ${APP_USER}@${DEPLOY_SERVER} "\
if [ \
! -e /home/${APP_USER}/myapp/${MODULE_NAME}/app.sh \
];\
then \
cp /home/${APP_USER}/myscript/app.sh /home/${APP_USER}/myapp/${MODULE_NAME}/ \
;fi \
&& cd /home/${APP_USER}/myapp/${MODULE_NAME} \
&& sh /home/${APP_USER}/myapp/${MODULE_NAME}/app.sh restart "
(9)点击保存。
整理完毕,完结撒花~