1. 程式人生 > >持續整合之jenkins實踐教程:基礎篇(2): 整合gitlab

持續整合之jenkins實踐教程:基礎篇(2): 整合gitlab

這裡寫圖片描述
作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenkins方面對一些細節進行總結和整理,這篇文章將會介紹如何在Jenkins中實現與gitlab的整合

事前準備

只要有jenkins即可,沒有的可以使用Jenkins官方的映象或者安裝包,或者使用Easypack中封裝的基本一致的Jenkins。

docker pull映象

[[email protected] ~]# docker pull liumiaocn/jenkins
Using default tag: latest latest: Pulling from liumiaocn/jenkins Digest: sha256:87c954f71bc3ce1ba5d001bfbae501f9965368c16f0111ef951350376c2f6832 Status: Image is up to date for liumiaocn/jenkins:latest [[email protected] ~]#

啟動Jenkins映象
docker run -d -p 8090:8080 -p 50000:50000 –name jenkins liumiaocn/jenkins

[root@liumiaocn ~]# docker run -d -p 8090:8080 -p 50000:50000 --name jenkins liumiaocn/jenkins
63dc2d52de03074858a6b61db4955345a66cfd436c5a47384924e9e3f8177778
[root@liumiaocn ~]#

plugin

與gitlab的整合也是通過外掛來做的,需要安裝GitLab Plugin外掛,目前版本是1.4.6,通過使用這個外掛進行整合能夠使得gitlab在push之後能夠呼叫jenkins進行構建。詳細說明如下圖所示
這裡寫圖片描述

安裝

可以使用jenkins的外掛管理頁面進行安裝,也可以使用其id(gitlab-plugin)在映象中進行安裝並重啟映象即可。在mailer中我們也使用了jenkins官方所提供的install-plugins.sh,連同依賴關係一起安裝給自定義jenkins會帶來極大的方便。

[[email protected] ~]# docker exec -it jenkins sh
/ $ install-plugins.sh gitlab-plugin
Creating initial locks...
Analyzing war...
Downloading plugins...
Downloading plugin: gitlab-plugin from https://updates.jenkins.io/download/plugins/gitlab-plugin/latest/gitlab-plugin.hpi
 > gitlab-plugin depends on workflow-step-api:1.15,credentials:2.1.0,git:2.4.1,git-client:1.19.0,matrix-project:1.10,plain-credentials:1.1;resolution:=optional
Downloading plugin: workflow-step-api from https://updates.jenkins.io/download/plugins/workflow-step-api/latest/workflow-step-api.hpi
Downloading plugin: credentials from https://updates.jenkins.io/download/plugins/credentials/latest/credentials.hpi
Downloading plugin: git from https://updates.jenkins.io/download/plugins/git/latest/git.hpi
Downloading plugin: git-client from https://updates.jenkins.io/download/plugins/git-client/latest/git-client.hpi
Skipping optional dependency plain-credentials
Downloading plugin: matrix-project from https://updates.jenkins.io/download/plugins/matrix-project/latest/matrix-project.hpi
 > workflow-step-api depends on structs:1.5
Downloading plugin: structs from https://updates.jenkins.io/download/plugins/structs/latest/structs.hpi
 > matrix-project depends on junit:1.20,script-security:1.13
Downloading plugin: junit from https://updates.jenkins.io/download/plugins/junit/latest/junit.hpi
Downloading plugin: script-security from https://updates.jenkins.io/download/plugins/script-security/latest/script-security.hpi
 > credentials depends on structs:1.7
 > git depends on workflow-scm-step:1.14.2,credentials:2.1.13,git-client:2.4.0,mailer:1.18,matrix-project:1.7.1,parameterized-trigger:2.33;resolution:=optional,promoted-builds:2.27;resolution:=optional,scm-api:2.1.0,ssh-credentials:1.13,token-macro:1.12.1;resolution:=optional
Downloading plugin: workflow-scm-step from https://updates.jenkins.io/download/plugins/workflow-scm-step/latest/workflow-scm-step.hpi
Downloading plugin: mailer from https://updates.jenkins.io/download/plugins/mailer/latest/mailer.hpi
Skipping optional dependency parameterized-trigger
Skipping optional dependency promoted-builds
Downloading plugin: scm-api from https://updates.jenkins.io/download/plugins/scm-api/latest/scm-api.hpi
Skipping optional dependency token-macro
Downloading plugin: ssh-credentials from https://updates.jenkins.io/download/plugins/ssh-credentials/latest/ssh-credentials.hpi
 > junit depends on structs:1.2
 > git-client depends on credentials:2.1.13,ssh-credentials:1.13,structs:1.6
 > workflow-scm-step depends on workflow-step-api:2.9
 > ssh-credentials depends on credentials:2.1.0
 > mailer depends on display-url-api:1.0
Downloading plugin: display-url-api from https://updates.jenkins.io/download/plugins/display-url-api/latest/display-url-api.hpi

WAR bundled plugins:


Installed plugins:
credentials:2.1.14
display-url-api:2.0
git-client:2.4.6
git:3.3.1
gitlab-plugin:1.4.6
junit:1.20
mailer:1.20
matrix-project:1.11
scm-api:2.1.1
script-security:1.29
ssh-credentials:1.13
structs:1.9
workflow-scm-step:2.6
workflow-step-api:2.12
Cleaning up locks
/ $ exit
[[email protected] ~]# docker restart jenkins
jenkins
[[email protected] ~]#

外掛安裝確認

重新啟動後確認此外掛已經安裝完畢
這裡寫圖片描述

設定內容

系統管理 -> 系統設定處的Gitlab相關內容則為所需設定的內容

設定專案 設定方法 設定內容
gitlab連線名稱 Gitlab -> Connection name郵件傳送地址 gitlab連線的名稱
gitlab的URL Gitlab ->Gitlab host URL 可以訪問的gitlab的URL
認證資訊 Gitlab ->Credentials 用來登陸gitlab的認證資訊

認證資訊使用Gitlab的API Token的方式進行建立,首先確認一下Gitlab 的ApiToken的相關資訊。

這裡寫圖片描述

gitlab API相關的資訊,可以參看:

使用確認到的API Token建立一個Gitlab API Token型別的Crendentials,詳細資訊如下:

這裡寫圖片描述

在設定頁面選中剛剛建立的Gitlab API Token

這裡寫圖片描述

驗證

設定完畢之後,點選Test Connection便可以確認jenkins和gitlab之間是否通過此外掛進行了整合。頁面顯示Success說明已經OK。
這裡寫圖片描述

總結

Jenkins與gitlab設定需要下載並安裝gitlab-plugin外掛,通過建立gitlab api token並使用,便可以通過gitlab-plugin外掛提供的測試功能進行整合連線確認。

相關推薦

持續整合jenkins實踐教程基礎(2): 整合gitlab

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

持續整合jenkins實踐教程基礎(7): 控制檯輸出的中文亂碼

jenkins是Java開發的應用程式,很多東西可以通過-D傳入選項來進行設定,這篇文章以中文亂碼的調整為例子,來說明一下常見修改的方式。 現象 使用jenkinsfile定義的流水線,如果stage名稱為中文的時候,圖形顯示沒有問題,但是在consol

持續整合jenkins實踐教程基礎(6): 在jenkins的容器中進行映象的構建

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

持續整合jenkins實踐教程基礎(1): 郵件設定

作為持續整合的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然有了自己的生態圈,支援其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenkins,一直是大家在實踐並討論的。本系列文章將會從如何使用jenki

版本管理SVN實踐教程基礎(6)tag的查詢/建立/刪除/設定

這篇文章介紹一下在svn中tag操作的查詢/建立/刪除與設定。 查詢tag 因為因為tags目錄是apache建議的方式,其本質也就是一個目錄,所以查詢的方式可以結合svn list命令確認改目錄下的檔案資訊,以及svn log確認提交資訊來進行。

版本管理gitlab實踐教程基礎(1)

這幾篇文章主要面向對git和gitlab稍有基礎,但是又不太會用的使用者,通過這幾文章你可以學到如下gitlab的使用方法: sshkey的設定 建立專案 分支操作 使用者/許可權/組的操作 配置專案可見性 Merge Request Issues操作

版本管理gitlab實踐教程基礎(16)

這篇文章介紹一下如何修改初始管理賬號root的密碼。 命令列方式 確認gitlab-rails 使用gitlab-rails進行設定 which gitlab-rails /opt/gitlab/bin/gitlab-rails # #

版本管理gitlab實踐教程基礎(14)

這篇文章整理一下對gitlab/github進行clone或者push操作時,不需要每次提交都輸入使用者名稱/密碼的幾種方式。 場景 何時需要輸入使用者名稱/密碼 gitlab可以建立private/protected/public的倉庫,priv

持續集成jenkins實踐教程 基礎 4 集成redmine

如何 沒有 iss 技術 文章 proc head pac redmin 作為持續集成的利器Jenkins已經得到了廣泛地應用,僅僅作為一個工具,Jenkins已然了了自己的生態圈,支持其的plugin更是超過1300+。在實際中如何使用以及如何更好地使用jenki

研發協同平臺持續整合Jenkins實踐

導讀 研發協同平臺有兩個核心目標,一是提高研發效率 ,二是提高研發質量,要實現這兩個核心目標,實現持續整合是關鍵之一。 什麼是持續整合 在《持續整合》一書中,對持續整合的定義如下:持續整合是一種軟體開發實踐。在持續整合中,團隊成員頻繁整合他們的工作成果,一般每人每天至少整合一次,也可以多次。每次整合會經過自動

.net 開源模板引擎jntemplate 教程基礎語法

## 一、基本概念 上一篇我們簡單的介紹了jntemplate並寫了一個hello world(如果沒有看過的,[點選檢視](https://www.cnblogs.com/hnvvv/p/14476803.html)),本文將繼續介紹jntemplate的模板語法。 我們在講解語法前,首先要了解一下標籤

持續整合Jenkins結合指令碼實現程式碼自動化部署及一鍵回滾至上一版本

一:本文通過jenkins呼叫shell指令碼的的方式完成從Git伺服器獲取程式碼、打包、部署到web伺服器、將web伺服器從負載均衡器刪除、解壓、複製配置檔案、建立軟連線、測試每一臺web伺服器、將web伺服器新增至負載均衡、回滾到任意指定版本、一鍵回滾到上一版本等功能,指令碼放在www使用者家目錄並使用w

某小型公司持續整合工具jenkins實踐(JAVA WEB、Android、IOS、Html)

前言 本文可能是網上最全的一篇全端jenkins部署解決方案介紹的文章,一直以來,領導都想解決程式碼提交和打包問題,尤其是小公司,打包流程混亂,造成線上版本和程式碼庫git或svn中程式碼不一致問題。加入jenkins陣營,解決眾多發包難題,顯得刻不容緩。

持續整合 Jenkins

持續整合 Jenkins簡介 功能與優點 Jenkins是基於Java開發的一種持續整合工具,用於監控持續重複的工作,功能包括: 持續的軟體版本釋出/測試專案。 監控外部呼叫執行的工作。 跟其他持續整合相比,它的主要優點有:

版本管理gitlab實踐教程進階(1)

實踐gitflow 結合git flow,使用gitlab作為遠端倉庫管理,在實際的專案中是一種可行的方式,而且這種方式對與複雜大型的專案有較好的適應方式。 git flow git flow源於Vincent Driessen在2010年提出的一個分

Spring Boot實踐教程開篇

mongo code 消息 發布 搭建 jdk1.8 hello 初學者 框架 前言 ??Java項目開發Spring應該是最常被用到的框架了,但是老式的配置方式讓人覺得特別的繁瑣,雖然可以通過註解去簡化xml文件的配置,但是有沒有更簡單的方式來幫我們完成這些重復性的事情呢

visual studio code教程基礎使用和自定義設置

麻煩 安裝 顏色 必須 寫入 全局環境變量 註意 一個 preview 一、界面介紹 1.1 界面介紹 1.2 文件夾和文件的打開 文件——>打開文件夾/打開文件 1.3 新建文件/文件夾 新建文件: a. 文件——>新建文件; b. 按Ctrl+n; c

持續部署jenkinsgitlab(二)

info 構建 分享 cred 按鈕 tla 使用 自動 源碼管理 測試部署項目,此項目配置成直接在gitlab中拉取代碼至Jenkins服務器中,在工作區域可見,項目名稱為auto-deloy 新建-->填寫項目名稱-->構建一個自由風格的軟件項目-->

Spring.NET教程(十九)整合NHibernate和ASP.NET MVC(基礎)

contains sar occurs false port company param soft stat 今天帶給大家的就是期待以久的ASP.net MVC與Spring.NET和NHibernate的組合,視圖打造.NET版的SSH(Spring-Struts-Hib

mllib實踐(三)LinearRegression實踐(libsvm方式)(整合網際網路上多個例項)

package mllib; import org.apache.spark.{ SparkConf, SparkContext } import org.apache.spark.ml.linalg.Vectors import org.apache.spark.mllib.regress