GitLab + TortoiseGit + Jenkins集成配置

GitLab简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问。它非常易于浏览提交过的版本并提供一个文件历史库。 与GitHub不同的是,它可以在上面创建免费的私人repository。

软件准备

Git主要是将不同用户电脑中的代码版本进行控制,这就需要用户电脑中也安装Git环境。
利用Git管理项目的方式有两种,一种通过TortoiseGit来管理,另一种就是Bash界面,推荐用后者。

以下是windows下Git环境的安装:
下载以下两个软件:

  • TortoiseGit,是TortoiseSVN的Git变种,主要用于图形化显示,下载地址:
    https://tortoisegit.org/download/
  • Git,windows下的Git版本,是TortoiseGit所必须依赖的,下载地址:
    https://git-scm.com/download/win

下载完之后,安装两个软件(不会的自行百度),安装过程中的一些选项都可以默认!

环境配置

一、界面管理(TortoiseGit)

1.生成公钥


GitLab + TortoiseGit + Jenkins集成配置_第1张图片
image.png
GitLab + TortoiseGit + Jenkins集成配置_第2张图片
image.png
GitLab + TortoiseGit + Jenkins集成配置_第3张图片
image.png

2.添加公钥到远程ssh设置中


GitLab + TortoiseGit + Jenkins集成配置_第4张图片
image.png
  1. 在自己需要进行交互时(即使用TortoiseGit 做clone、pull、push操作时),添加解密私钥


    GitLab + TortoiseGit + Jenkins集成配置_第5张图片
    image.png
GitLab + TortoiseGit + Jenkins集成配置_第6张图片
image.png

否则会报如下错误:


GitLab + TortoiseGit + Jenkins集成配置_第7张图片
image.png
二、GIT BASH的自动配置

生成自己电脑的SSH Key:

打开之前安装的Git Bash (打开Git安装目录的git-bash.exe或直接在文件路径右键选择Git Bash Here),输入ssh-keygen -t rsa -C "[email protected]",把引号里面的邮箱改成GitLab的注册邮箱地址,然后一直敲回车就行,下图是我电脑生成SSH Key的情况:

GitLab + TortoiseGit + Jenkins集成配置_第8张图片
image.png

生成SSH Key之后,将.ssh文件夹下id_rsa.pub文件的内容复制到“Key”的文本框中,点击保存:


GitLab + TortoiseGit + Jenkins集成配置_第9张图片
image.png
GitLab + TortoiseGit + Jenkins集成配置_第10张图片
image.png
三、创建项目

点击GitLab页面最上面的 + 来新建项目:

GitLab + TortoiseGit + Jenkins集成配置_第11张图片
image.png

新建完成之后,会出现下面的提示:


GitLab + TortoiseGit + Jenkins集成配置_第12张图片
image.png

这些命令是GitLab要求用户在自己电脑上完成的,主要就是为Gitlab的新建项目在自己本地电脑建一个一对一绑定的文件夹,以供以后的更新和同步。在这些命令中,Git global setup下的两条命令是必须要先执行的,主要是将自己的邮箱注册到自己本地Git中,我的截图如下:

GitLab + TortoiseGit + Jenkins集成配置_第13张图片
image.png

Create a new repositoryExisting folder or Git repository下的命令主要就是创建目录以及上传文件,这些操作可以都用命令行完成,但是为了使用的方面,我们用TortoiseGit的可视化界面来完成这些工作。

四、用TortoiseGit将本地文件上传到Gitlab

1.用户信息配置

GitLab + TortoiseGit + Jenkins集成配置_第14张图片
image.png

2.Remote参数配置:
输入Remote名(可自定义),然后将项目地址(如三中创建项目的地址)复制到URL的文本框中,“确定”即可:

GitLab + TortoiseGit + Jenkins集成配置_第15张图片
image.png

3.Create repository
为了将本地文件夹下的内容上传到远程GitLab中新建的项目下,我们首先要将该文件夹做一些git的初始化。
进入该文件夹,点击鼠标右键,选择 Git Create repository here...,再点击 OK
GitLab + TortoiseGit + Jenkins集成配置_第16张图片
image.png

文件夹中会出现一个叫.git的文件夹,该文件夹是隐藏的,需要查看隐藏文件夹才能看到,该文件夹就是git 初始化的结果,里面有很多git正常工作需要用到的配置信息:


GitLab + TortoiseGit + Jenkins集成配置_第17张图片
image.png

4.commit
在文件夹内点击鼠标右键,选择Git Commit -> "master",出现下面的对话框,上面的文本框里是用户可以填的消息,即本次代码更新的备注,文本框的内容不能为空!下面的框里是可以选择更新的代码文件,然后点击commit :

GitLab + TortoiseGit + Jenkins集成配置_第18张图片
image.png

5.push
commit成功后,下图左下角有Push操作,可以直接点击将这些已经commit的文件上传到GitLab的项目中:

GitLab + TortoiseGit + Jenkins集成配置_第19张图片
image.png

GitLab + TortoiseGit + Jenkins集成配置_第20张图片
image.png

点击上图OK,上传成功:


GitLab + TortoiseGit + Jenkins集成配置_第21张图片
image.png
image.png
五、用TortoiseGit 将 Gitlab 上的项目clonepull到本地

1. clone
在目标文件夹下点击鼠标右键,选择Git Clone...,弹出如下对话框,URL中拷贝GitLab项目地址即可:

GitLab + TortoiseGit + Jenkins集成配置_第22张图片
image.png

GitLab + TortoiseGit + Jenkins集成配置_第23张图片
image.png

2. pull
在本地Git repository文件夹下点击鼠标右键,选择TortoiseGit —>pull,弹出如下对话框,点击OK即可:

GitLab + TortoiseGit + Jenkins集成配置_第24张图片
image.png

GitLab + TortoiseGit + Jenkins集成配置_第25张图片
image.png

另外,在本地Git repository中点击右键,会发现有一个Git Sync...的选项,该操作可以查看自己本地项目代码版本与GitLab中项目代码的不一致性,可以通过Pull 或Push 操作,将本地代码与GitLab中项目版本同步:

GitLab + TortoiseGit + Jenkins集成配置_第26张图片
image.png

GitLab + TortoiseGit + Jenkins集成配置_第27张图片
image.png
六、Jenkins 拉取 GitLab 项目

GitLab 是当前应用非常广泛的 Git Hosting 工具,Jenkins是非常牛逼的持续集成工具。尽管 GitLab 有内建的 GitLab CI,但它远没有 Jenkins 那么强大好用。Jenkins 和 GitLab 在两者的结合上,都提供了非常方便的工具。在我们向 GitLab push 代码,或执行其它一些操作时,GitLab 可以将这些时间通知给 Jenkins,trigger Jenkins 工程的构建自动执行。

1.安装插件
系统管理—>管理插件—>可选插件,选择 Gitlab Hook PluginGitLab Plugin等插件,然后点击下方的 直接安装 按钮安装插件。

2.新建Job
在输入框中输入工程名,选择构建一个自由风格的软件项目,然后点击确定按钮,进入工程配置页面。
在源码管理部分,输入 GitLab 项目的 URL,如下图:

GitLab + TortoiseGit + Jenkins集成配置_第28张图片
image.png

点击 Credentials 后面的 Add -> Jenkins 按钮,在弹出的对话框中输入登录 GitLab 的用户名和密码:

GitLab + TortoiseGit + Jenkins集成配置_第29张图片
image.png

Add 之后,在 Credentials 的下拉框中选择这组用户名和密码。如果没有添加 GitLab 的用户密码,也会报错。

随后点击保存按钮,完成 Jenkins 工程的创建,并将它与 GitLab 的工程关联起来。

3.配置 Jenkins 服务器来与 GitLab 服务器通信
选择 系统管理 -> 系统设置,找到 GitLab 的部分:

GitLab + TortoiseGit + Jenkins集成配置_第30张图片
image.png

配置如下:


GitLab + TortoiseGit + Jenkins集成配置_第31张图片
image.png

GitLab中选择 Settings -> Account复制其中的Private token

GitLab + TortoiseGit + Jenkins集成配置_第32张图片
image.png

点击 Credentials 后面的 Add -> Jenkins 按钮,弹出如下对话框,在 Kind 中选择 GitLab API token,并把上一步复制的 Private token 粘贴到 API token 输入框中。随后在 Credentials 的下拉框中选择 GitLab API token。

GitLab + TortoiseGit + Jenkins集成配置_第33张图片
image.png

点击Test connection,发现报错:

GitLab + TortoiseGit + Jenkins集成配置_第34张图片
image.png

解决办法:
点击高级...按钮,API-Level选择V3,再点击测试连接,就成功了:

GitLab + TortoiseGit + Jenkins集成配置_第35张图片
image.png

4.配置 Jenkins 工程
打开第2步中创建的Job 的配置页面,找到 构建触发器 ,勾选 Build when a change is pushed to GitLab

GitLab + TortoiseGit + Jenkins集成配置_第36张图片
image.png

需要记下 GitLab CI Service URL:后面的连接,后面在配置 GitLab 工程时需要用到。

点击高级...—>Generate 按钮,生成 Secret token,保存这里生成的 Secret token,它同样将用于后面 GitLab 的配置。随后保存刚才的配置。

5.配置 GitLab 工程
创建一个新的或选择一个已有的 GitLab 工程。然后选择 Settings -> *** Integrations***,在 URL 一栏中输入前面保存的 GitLab CI Service URL,在 Secret Token 一栏中输入前面保存的 Secret token,然后选择需要 trigger Jenkins 工程执行构建的事件:

参考文章:
https://blog.csdn.net/zcmain/article/details/76544636
https://www.jianshu.com/p/444a74d75f0a
https://docs.gitlab.com/ee/integration/jenkins.html

你可能感兴趣的:(GitLab + TortoiseGit + Jenkins集成配置)