经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库运维 » LinuxShell » 查看文章
简单gitblit与Jenkins结合,持续集成
来源:cnblogs  作者:枫若雪  时间:2018/9/30 10:49:57  对本文有异议

gitblit是当作git服务器,也就是作为私有的代码仓库,用法类似于Github

Jenkins 是自动构建工具,帮忙将仓库中的代码更新到服务器上。可以设置为定时自动构建。

 

详细摸索了我现在公司的用法, 先简单描述下工作过程:

平常我们写好代码之后,会git push到仓库,然后到 Jenkins 上点一下,手工执行了一下项目的构建,然后Jenkins让服务器执行了Shell脚本,

shell脚本执行了git checkout . 以及git pull , 以及重启相关服务等。

  1. ## ------------ 安装 gitblit -------------------------------------
  2. # 前提:装好JDK, 以及依赖
  3. yum install git
  4. yum install -y gcc-c++ curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
  5. # 到此处下载gitblit 我下载的1.8.0
  6. # http://dl.bintray.com/gitblit/releases/
  7. # 放到 centos 某文件夹,
  8. cd /opt
  9. tar zxf gitblit-1.8.0.tar.gz
  10. cd gitblit-1.8.0/data
  11. # 可以看到几个配置文件. defaults.properties 拥有全部配置项
  12. # 在gitblit.properties中添加配置,用来覆盖 defaults.properties 中的默认值
  13. git.repositoriesFolder = ${baseFolder}/git # 仓库位置
  14. server.httpPort = 80 # http端口
  15. server.httpsPort = 8443 # https端口
  16. server.httpBindInterface = # 不写则所有地址
  17. server.httpsBindInterface = # 不写则所有地址
  18. # 回到 gitblit 目录, 执行
  19. nohup ./gitblit.sh & # 后台运行
  20. # netstat -nltp 检查一下端口和进程
  21. # 浏览器访问一下这台机器的域名试试吧。
  22. # 进入管理页面的操作很简单,就是创建用户,版本库之类的,对git客户端的支持,
  23. # 基本上和Github 一样

# gitblit操作部分可参考:https://www.cnblogs.com/kevingrace/p/5575348.html

 

  1. #-------------------------- Jenkins ------------------------------------
  2. # 下载LTS版 如2.138.1 https://jenkins.io/download/ 选择OS版本,或者 .war
  3. # 将其放入 tomcat/webapps中,或者Linux的某文件夹, 例如:
  4. cd /opt
  5. java -jar jenkins.war # 等待运行成功 显示 管理密码 复制
  6. # 之后建议后台运行
  7. nohup java -jar jenkins.war >> jenkins.log &
  8. # 浏览器访问 http://此机器所在域名:8080
  9. # 按照页面提示,输入管理密码,继续安装,选择需要的组件,继续。等待安装成功后,
  10. # 创建管理员账号,开始使用
  11. ## Jenkins集成git
  12. ## git的通信协议
  13. ## Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。
  14. ## (Ps:HTTP 协议外,其他所有协议都要求在服务器端安装并运行 Git)

 

  1. #------------------------- 例:自动部署Node.js的程序------------------------
  2. # jenkins 通过SSH执行远程主机上的shell脚本,shell执行 git pull 并重启服务
  3. # 1. Jenkins先在 系统管理 系统设置中,找到SSH remote hosts,添加hostname,port,credentials,
  4. # 2. Check connection 测试连接成功, 保存并回到主界面
  5. # 3. Jenkins创建一个自由风格的软件项目,构建,增加构建步骤
  6. # 4. 选择 Execute shell script on remote host using ssh
  7. # 5. SSH site 中选择第1步创建的连接,Command 中贴上需要执行的脚本:
  8. export BUILD_ID=dontKillMe
  9. /opt/scripts/deploy_server_v2.sh
  10. # 脚本 deploy_server_v2.sh 内容:
  11. cd /opt/apps/screen_server/
  12. git checkout .
  13. git pull
  14. /opt/node/bin/npm install
  15. /opt/node/bin/forever stop server_3rd.js
  16. /opt/node/bin/forever start -l /opt/logs/screen_server_3rd.log -a server_3rd.js
  17. # 6. 保存,回到项目界面,点击 立即构建 等待结果
  18. # 结果出错,点击错误信息,进入 状态集,点击Console Output, 发现如下错误:
  19. [SSH] executing...
  20. /usr/bin/env: node: No such file or directory
  21. /usr/bin/env: node: No such file or directory
  22. /usr/bin/env: node: No such file or directory
  23. # 解决办法:在脚本目标主机为node程序建立个软链接
  24. ln -s /opt/NODEJS_HOME/bin/node /usr/bin/node
  25. ### 分步执行shell 发现 git中报unable to auto-detect email address 错误
  26. ### 解决办法:进入项目目录 .git文件夹,编辑 config 文件,增加:
  27. [user]
  28. email=your email
  29. name=your name

 

  1. #------------------------- 再看个java war包的示例 ------------------------
  2. # Jenkins 构建仍是Execute shell , Command内容:
  3. export BUILD_ID=dontKillMe
  4. /opt/scripts/deploy_v2_screen_api.sh
  5. # 脚本 deploy_v2_screen_api.sh 内容:
  6. cd /opt/product/config/screen_api/v2/
  7. git checkout .
  8. git pull
  9. cd /opt/product/code/screen_api_v2/
  10. git checkout .
  11. git pull
  12. #rm -rf /opt/product/code/screen_api_v2/target/screen_api_v2.war
  13. cp -f /opt/product/config/screen_api/v2/application.yml /opt/product/code/screen_api_v2/src/main/resources/
  14. #rm -rf /opt/product/code/screen_api_v2/target/
  15. /opt/maven/bin/mvn clean
  16. /opt/maven/bin/mvn -Dfile.encoding=UTF-8 package
  17. #scp /root/screen/screen_backend/target/monitor.war root@101.37.22.173:/opt/tomcat/webapps/
  18.  
  19. rm -rf /opt/tomcat/webapps/screen_api_v2.war
  20. mv /opt/product/code/screen_api_v2/target/screen_api_v2.war /opt/tomcat/webapps/

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号