GitLab + TortoiseGit + Jenkins集成配置

GitLab简介

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

软件准备

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

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

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

环境配置

一、界面管理(TortoiseGit)

1.生成公钥

《GitLab + TortoiseGit + Jenkins集成配置》 image.png
《GitLab + TortoiseGit + Jenkins集成配置》 image.png
《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

  1. 在自己需要进行交互时(即使用TortoiseGit 做clone、pull、push操作时),添加解密私钥

    《GitLab + TortoiseGit + Jenkins集成配置》 image.png

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

否则会报如下错误:

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

二、GIT BASH的自动配置

生成自己电脑的SSH Key:

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png
《GitLab + TortoiseGit + Jenkins集成配置》 image.png

三、创建项目

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

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

1.用户信息配置

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

3.Create repository

为了将本地文件夹下的内容上传到远程GitLab中新建的项目下,我们首先要将该文件夹做一些git的初始化。

进入该文件夹,点击鼠标右键,选择
Git Create repository here…,再点击
OK

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

点击上图OK,上传成功:

《GitLab + TortoiseGit + Jenkins集成配置》 image.png
《GitLab + TortoiseGit + Jenkins集成配置》 image.png

五、用TortoiseGit 将 Gitlab 上的项目clonepull到本地

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

《GitLab + TortoiseGit + Jenkins集成配置》 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集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

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

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

配置如下:

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

点击Test connection,发现报错:

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 image.png

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

《GitLab + TortoiseGit + Jenkins集成配置》 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

    原文作者:呆呆冬
    原文地址: https://www.jianshu.com/p/5c3e99de5b93
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞