博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jenkins中通过git发版操作记录
阅读量:6083 次
发布时间:2019-06-20

本文共 2527 字,大约阅读时间需要 8 分钟。

 

之前说到的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将下载的代码分发到远程目标机器上即可。

转载地址:http://wnkwa.baihongyu.com/

你可能感兴趣的文章
带空格文件名的处理(find xargs grep ..etc)
查看>>
华为Access、Hybrid和Trunk的区别和设置
查看>>
centos使用docker下安装mysql并配置、nginx
查看>>
关于HTML5的理解
查看>>
需要学的东西
查看>>
Internet Message Access Protocol --- IMAP协议
查看>>
Linux 获取文件夹下的所有文件
查看>>
对 Sea.js 进行配置(一) seajs.config
查看>>
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>
sql 字符串操作
查看>>
【转】Android布局优化之ViewStub
查看>>
网络安全管理技术作业-SNMP实验报告
查看>>
根据Uri获取文件的绝对路径
查看>>
Flutter 插件开发:以微信SDK为例
查看>>
.NET[C#]中NullReferenceException(未将对象引用到实例)是什么问题?如何修复处理?...
查看>>
边缘控制平面Ambassador全解读
查看>>
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>