santaclaus 发表于 2018-1-8 23:14:16

gitlab+jenkins+webhook自动构建

  1.jenkins安装好,Gitlab Hook Plugin,GitLab Plugin,Gitlab Authentication plugin
  https://images2017.cnblogs.com/blog/718704/201712/718704-20171201105955117-1394631924.png
  2.配置gitlab代码获取用户,系统管理---管理用户---新建用户
  https://images2017.cnblogs.com/blog/718704/201712/718704-20171201110531383-569585307.png
  3.授权用户构建权限,系统管理---Configure Global Security
  a. admin管理员权限一定要全部
  b.其它用户授予Overall权限
  https://images2017.cnblogs.com/blog/718704/201712/718704-20171201110708102-1731801815.png
  4.建立的project配置权限及设置
https://images2017.cnblogs.com/blog/718704/201712/718704-20171201110959867-386125003.png
  5.填入git地址及拉取git源码的账号
https://images2017.cnblogs.com/blog/718704/201712/718704-20171201111111164-119559897.png
  6.构建触发器,gitlab webhook push的地址,按要求填入
https://images2017.cnblogs.com/blog/718704/201712/718704-20171201111501086-1082752048.png
  用户的api-token查看,gitlab webhooks地址:

http://pinxxx:f8e7ff5c04c4c614a3786d6d5cdec65c@192.168.1.103:8080/job/wap.b2b-v3.0/build?token=e74e15dc63ece4a24ac6966c  
  https://images2017.cnblogs.com/blog/718704/201712/718704-20171201112246273-1378825124.png
  7.构建本地打包命令
  

#!/bin/sh  
cd ${WORKSPACE}/../
  

  
[ ! -d ${WORKSPACE}/deploy ] && mkdir ${WORKSPACE}/deploy
  
rm -rf ${WORKSPACE}/deploy/*.gz
  

  
# SVN
  
#tar -zcf ${WORKSPACE}/deploy/${JOB_NAME}_${BUILD_ID}_v${SVN_REVISION}.tar.gz --exclude=".git" --exclude=".gitignore" --exclude=deploy ${JOB_NAME}/wap.v3.0/dist_dev
  
# GIT
  
tar -zcf ${WORKSPACE}/deploy/${JOB_NAME}_${BUILD_ID}.tar.gz --exclude=".git" --exclude=".gitignore" --exclude=deploy ${JOB_NAME}/wap.v3.0/dist_dev
  

  

https://images2017.cnblogs.com/blog/718704/201712/718704-20171201111802227-638338526.png
  8.连接站点服务器,进行代码打包发布
  

#!/bin/sh  

  
WWW=/data/wwwroot/v3.0
  
SITE=m.source.git
  
cd /data/jenkins/deploy
  

  
mkdir ${WWW}/${SITE}_${BUILD_ID}
  

  
##tar -zxf ${JOB_NAME}_${BUILD_ID}.tar.gz -C ${WWW}/${SITE}_${BUILD_ID} --strip-components 3
  
tar -zxf ${JOB_NAME}_${BUILD_ID}.tar.gz -C ${WWW}/${SITE}_${BUILD_ID} --strip-components 2
  

  
cd ${WWW}
  
rm -rf ${SITE}
  
ln -s ${SITE}_${BUILD_ID} ${SITE}
  

  
##OSITE=${SITE}_$[ ${BUILD_ID} - 2 ]_v${SVN_REVISION}
  
OSITE="${SITE}_$[ ${BUILD_ID} - 2 ]*"
  
rm -rf $OSITE
  

  
chown -R root.root ${WWW}/${SITE}/
  
chown -R nginx.nginx ${WWW}/${SITE}/dist_dev/dist_css/img
  
##find ${WWW}/${SITE}/ -name runtime | xargs chown -R nginx.nginx
  

  
#rm -rf /data/jenkins/deploy/*
  

  

https://images2017.cnblogs.com/blog/718704/201712/718704-20171201112014289-1577449454.png
  9.配置gitlab自动发布
https://images2017.cnblogs.com/blog/718704/201712/718704-20171201112410070-2087780148.png
  10.在webhooks填入jenkins构建的地址,出现 Hook executed successfully: HTTP 201 就表示可以push成功
  

http://pinxxx:f8e7ff5c04c4c614a3786d6d5cdec65c@192.168.1.103:8080/job/wap.b2b-v3.0/build?token=e74e15dc63ece4a24ac6966c  

  

https://images2017.cnblogs.com/blog/718704/201712/718704-20171201112611008-214376158.png
  http://blog.csdn.net/guanshulixiao/article/details/76174731
  http://blog.csdn.net/reblue520/article/details/76287590
页: [1]
查看完整版本: gitlab+jenkins+webhook自动构建