之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录。

一、不管是通过svn发版还是git发版,都要首先下载svn或git插件。
登陆jenkins,依次点击“Jenkins首页”->“系统管理”->“管理插件”->"可选插件",选在svn或git有关插件(ctrl+f搜索"svn"或"git"),直接进行安装即可
安装成功后,在“已安装”里可以看到:

这样,在构建任务的配置中,在”源码管理“里就有svn和git的选项了

二、接着说下git发版配置。git代码是在gitlab平台托管的。
        1)如果要发版的代码在gitlab上是Private私有状态或Internal状态,那么就只能通过ssh方式连接(推荐此种方式,比较安全),这两种模式下是不能通过http方式连接。
             做法如下:
             现将jenkins本机的公钥上传到gitlab上(保证gitlab机器的ssh端口已对客户机开放)

[root@redmine ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmlV29T9ViFA+ld+ziZqDXwcOwAzSU8B4oESOZLEs51m+us8MPLYED7s1gQTmnXx2yTxCT67WnHUpRExm4gZj0jQTUi5uYFMuEJnXYLi7/YgeTjRkjYFs8RdpsNUp+FA6bmBSVLa/JDvWrvdO1xhicJp/8cX/c5Y16iXIgDWnewMgoknUYHZL+cplF5+JYSSb9We3+qq2GzWnkX5VkuSq9ky+ZYbUH/JrlbTAp8rB4J5+THYz5ahvP1UteMcaEf9duoT7N+VJLANmOWcEn7Q5JnNhNVJz5hafYg5cQgFOHmixriZaPsdAJ+yaN21sv+pBbTdzbHQn1oz/gpbd47imqQ== root@redmine.wangshibo.com

然后在jenkins本机测试是否能正常下载gitlab代码(假设git的url是git.wangshibo.net)

jenkins本机测试代码下载:(下面的两行--global的全局配置要跟上,不然提交后的记录在gitlab上是追踪不到的,只有这个全局配置了,才能在gitlab上找到相应用户的提交记录)
[root@redmine ~]# mkdir git
[root@redmine ~]# cd git/
[root@redmine git]# git init .
Initialized empty Git repository in /root/git/.git/
[root@redmine git]# git config --global user.name "王士博"                         //全局设置,指定下载使用的gitlab的用户名
[root@redmine git]# git config --global user.email "root@redmine.wangshibo.com-jenkins"      //全局设置,指定下载使用的Keys名称,就是上面添加的Keys
[root@redmine git]# git clone git@git.wangshibo.net:weixin/weixin.git
Initialized empty Git repository in /root/git/weixin/.git/
remote: Counting objects: 10, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (10/10), done.

然后在jenkins里相关任务配置里指定git路径:

2)如果要发版的代码在gitlab上是Public公开状态(这是必要前提条件,如下图),那么就可以直接通过http连接(http连接只能在这种模式下才能成功!要保证gitlab机器的http端口对客户机开放)

这样直接通过git clone http://git.wangshibo.net:8081/weixin/weixin.git 就能下载代码了
使用http方式直接连接gitlab显然没有ssh连接方式安全,但是也可以做些安全设置,比如在gitlab本机的iptables里做端口限制(如上是8081端口),添加白名单等。

然后在jenkins里相关任务配置里指定git路径:

三、jenkins上的发版脚本
脚本如下:

脚本内容:
#!/bin/bash

SOURCE_DIR=/srv/apache-tomcat-7.0.67/webapps/jenkins/jobs/${JOB_NAME}/workspace/
DEST_DIR=/Data/app/xqsj_wx/
REMOTE_IP=*.*.*.*

/usr/bin/rsync -e "ssh -p25791" -avpgolr --delete-before $SOURCE_DIR $REMOTE_IP:$DEST_DIR

脚本解释:
1)通过上面的git将业务代码下载到jenkins本机jobs里对应任务的workspace下。
     本机的jenins部署路径是/srv/apache-tomcat-7.0.67/webapps/jenkins
     [root@redmine workspace]# pwd                         //wx-test是jenkins界面的任务工程名,脚本中${JOB_NAME}是jenkins的内置变量
     /srv/apache-tomcat-7.0.67/webapps/jenkins/jobs/wx-test/workspace
2)再通过rsync将下载的代码分发到远程目标机器上即可。

转载于:https://www.cnblogs.com/kevingrace/p/6117425.html

jenkins中通过git发版操作记录相关推荐

  1. Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录

    本文主要记录在Ubuntu 16.04操作系统中搭建GitLab服务器的操作记录,以下是操作步骤(主要参考资料:https://about.gitlab.com/downloads/#ubuntu16 ...

  2. IDEA中对Git的常规操作(合并,提交,新建分支,更新)

    IDEA中对Git的常规操作 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小袁修改了部分源码,提交到远程仓库 场景四:小张从远程仓库获取小袁的提交 ...

  3. wincc 用c语言读取用户名,WINCC中使用C脚本获得操作记录_wincc脚本读取报警记录-C文档类资源...

    WINCC中使用C脚本获得操作记录 文档号 版本|日期 页数 SIEMENS 应用范围 详述 在生产中,有很多时候需要记录操作员的操作,以便进行事故分析. 本身提供了一些对象可以产 生操作记录,但是在 ...

  4. Jenkins中连接Git仓库时提示:无法连接仓库:Error performing git command: git ls-remote -h

    场景 在Jenkins中新建任务后,在源码管理中选择Git,并且通过用户名和密码的 凭证方式连接到Git仓库时提示: 无法连接仓库:Error performing git command: git ...

  5. Jenkins中连接Git仓库时提示:error: The requested URL returned error: 401 Unauthorized while accessing

    场景 在Jenkins中新建任务后,在源码管理中选择Git,并且通过用户名和密码的 凭证方式连接到Git仓库时提示: error: The requested URL returned error: ...

  6. Jenkins中使用Git和Maven之多个项目

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1.应用 ...

  7. 持续集成部署Jenkins工作笔记0019---19.在Jenkins中指定Git客户端位置

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 很简单 去全局工具配置中,找到这个git,名字自己填写一个 然后可执行程序的路径,是在 /usr/ ...

  8. 在虚拟机中安装“行云管家”,操作记录

    1.在本机用VMwareWorkstation软件新安装一台XP系统,账号Administrator,密码为12345: 右击"我的电脑"--属性--远程--勾选"允许从 ...

  9. 06-07 Jenkins中配置 Git 认证信息

    参考链接: https://ceshiren.com/t/topic/10784 需要在节点设备上配置好公钥 生成/添加 SSH 公钥 的方式 https://gitee.com/help/artic ...

最新文章

  1. 计算机结构原理初步教案板书设计,(计算机工作原理)教学设计(教案)
  2. mysql 连接池 100_mysql的最大连接数默认是100_MySQL
  3. 【一天一个C++小知识】015:c++11线程创建的三种方法
  4. Mybatis原理解析(一)解析全局xml配置文件生成SqlSessionFactory过程
  5. php++erp,php云ERP进销存V8标准版
  6. GitHub简单入门
  7. mysql同时满足升序和降序_mysql升序和降序语句
  8. 【校园卡】更新联通校园卡套餐海报及常规操作,校园卡最新消息及选购建议,增加评论功能...
  9. DFMA 方法帮助降低血液分析仪成本
  10. 中大型公司的开发流程
  11. 一月到十二月的英文简写和英文单词
  12. 朴灵:打破限制,从前端到全栈
  13. 开源WEBGIS(五)WEBGIS五剑客之GIS服务
  14. 宏杰文件夹加密软件 v2928 官方免费版
  15. 启动springboot项目 Error running ‘xxx‘
  16. 编写个人博客网站的一次经历
  17. [原创]FIRC-Gesture数字手势识别VOC数据集简介
  18. 解决桌面图标或者开始菜单图标不能正确显示问题
  19. 社交里互评、点赞的实现
  20. OracleP6机场工程进度控制系列10:总进度计划编制基础

热门文章

  1. 终于有人把Java技术知识面试体系整理出来了,这些文档让你的面试稳如泰山
  2. 过于自嗨的《紫塞秋风》,怎么就成了行业教科书?
  3. mysql存储过程是什么
  4. 零基础学Python(第八章 for循环·超重点,本章会有几个简单的单层循环练习,后续会有针对算法的单独章节)
  5. Linux学习笔记01
  6. [译文]C# Heap(ing) Vs Stack(ing) in .NET: Part I
  7. 阻塞与非阻塞个人小结
  8. jquery插件 autoComboBox 自动创建联动的下拉框 如:省市区联动
  9. Lucene.Net学习
  10. 使用.net资源文件时候发生的问题