Jenkins 如何设置GitLab的钩子
目标:在GitLab提交代码之后,Jenkins会自动构建。
·
目录
目标: 在GitLab提交代码之后,Jenkins会自动构建。
1.在GitLab上新建一个项目test
2.在Jenkins上新建一个项目test-jenkins
2.1)点击新建任务
2.2)输入任务名称,选择构建一个maven项目,确定
如果Jenkins上有类似任务,可以直接选择“根据一个已经存在的任务创建”
2.3)填写任务配置
(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)点击保存。
3回到GitLab上配置钩子
3.1)选择Settings->Webhooks
3.2)将之间Jenkins上复制的Url和Secret token粘贴上(详见2.3中(4)和(6))
3.3)点击添加钩子
3.4)添加之后可以看到已经添加好的钩子,点击Test可以进行测试
3.5)点击Test,选择Push events,可以模拟Push操作
3.6)可以看到test-Jenkins已经在构建了
整理完毕,完结撒花~
更多推荐
已为社区贡献6条内容
所有评论(0)