专栏首页散尽浮华jenkins中通过git发版操作记录

jenkins中通过git发版操作记录

之前说到的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)

image.png

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大话Git

    Git是什么 Git是一个分布式版本控制系统。它可以很方便的记录你的每一次变动,而不需要每次都备份,还能让你和他人很方便的协同开发。这样你每次做了什么改动,瞄一...

    洗尽了浮华
  • git review报错一例

    在线上修改代码,最后使用git review提交代码审核的时候出现报错如下: [wangshibo@115~]$ vim testfile           ...

    洗尽了浮华
  • Git管理项目实例说明-记录和跟踪项目

    假设一个HTML项目,使用Git来记录和跟踪这个项目,包括以下内容: 1)创建版本库。 2)添加与修改文件。 3)创建新分支。 4)打标签并整理版本库。 5)克...

    洗尽了浮华
  • 三年 Git 使用心得 & 常见问题整理

    「使用场景:」 当你接到一个修复紧急 bug 的任务时候,一般都是先创建一个新的 bug 分支来修复它,然后合并,最后删除。但是,如果当前你正在开发功能中,短时...

    Nealyang
  • 30分钟Git命令入门到放弃

    git 现在的火爆程度非同一般,它被广泛地用在大型开源项目,团队开发,以及独立开发者,甚至学生之中。

    哲洛不闹
  • git工具使用

    开发一个项目,用git工具控制版本,需要理清一个图 ? 初始化一个项目: git init 或者从远程url上拿下代码 git clone url 拿下代码后...

    前朝楚水
  • 常用Git命令记录

    AlicFeng
  • 10.7 Git 内部原理 - 维护与数据恢复

    有的时候,你需要对仓库进行清理 - 使它的结构变得更紧凑,或是对导入的仓库进行清理,或是恢复丢失的内容。 这个小节将会介绍这些情况中的一部分。

    shaonbean
  • 适合初学者提升的Git技能

    你知道git工作流的基本知识,熟悉一些基本的命令,如add,commit,push,pull,那么这篇文章可能适合你。这篇文章主要关注日常git使用改进,修复一...

    硬核编程
  • 终于有人把 Git 分支讲清楚了!

    从本质上来讲 Git 是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面。

    DevOps时代

扫码关注云+社区

领取腾讯云代金券