1. 程式人生 > >向GitHub提交程式碼時觸發Jenkins自動構建

向GitHub提交程式碼時觸發Jenkins自動構建

當我們提交程式碼到GitHub後,可以在Jenkins上執行構建,但是每次都要動手去執行略顯麻煩,今天我們就來實戰Jenkins的自動構建功能,每次提交程式碼到GitHub後,Jenkins會進行自動構建;

前期準備工作

進行本章的實戰前,推薦您參照《docker下的Jenkins安裝和體驗》做安裝和體驗的實戰,以便對Jenkins服務有初步瞭解;

重要前提

  1. GitHub收到提交的程式碼後要主動通知Jenkins,所以Jenkins所在伺服器一定要有外網IP,否則GitHub無法訪問,我的Jenkins伺服器是部署在騰訊雲的雲主機上,帶有外網IP;
  2. 本次實戰要提交原始碼到GitHub,所以您需要有一個GitHub號,並在上面建立工程;

demo工程原始碼

本次用來在Jenkins上構建的工程是個springboot的web工程,地址是:[email protected]:zq2599/jenkinsdemo.git,用瀏覽器訪問的地址是:https://github.com/zq2599/jenkinsdemo.git
程式碼很簡單,只有一個controller,接收http請求返回一個字串,如下所示:

@RestController
public classHello {
    @RequestMapping("/")
    public String sayHello(){
        return
"3. Hello jenkins, " + new Date(); } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

您需要在自己的GitHub建立一個專案,原始碼可以參照上述demo工程的原始碼;

實戰步驟梳理

本次整個實戰過程依次為如下步驟:
1. GitHub上準備一個spring boot的web工程;
2. GitHub上配置Jenkins的webhook地址;
3. 在GitHub上建立一個access token,Jenkins做一些需要許可權的操作的時候就用這個access token去鑑權;
4. Jenkins安裝GitHub Plugin外掛;
5. Jenkins配置GitHub訪問許可權;
6. Jenkins上建立一個構建專案,對應的原始碼是步驟1中的web工程;
7. 修改web工程的原始碼,並提交到GitHub上;
8. 檢查Jenkins的構建專案是否被觸發自動構建,構建成功後,下載工程執行,看是不是基於最新的程式碼構建的;

webhook地址

webhook是通知Jenkins時的請求地址,用來填寫到GitHub上,這樣GitHub就能通過該地址通知到Jenkins;
假設Jenkins所在伺服器的地址是:192.168.0.1,埠為8080,那麼webhook地址就是

再次提醒,上述地址必須是外網也能訪問的,否則GitHub無法訪問到Jenkins;

配置GitHub

  1. 登入GitHub,進入要本次構建用到的工程;
  2. 在工程主頁面點選右上角的”Settings”,再點選左側”Webhooks”,然後點選“Add webhook”,如下圖:
    這裡寫圖片描述
  3. 如下圖,在”Payload URL”位置填入webhook地址,再點選底部的”Add webhook按鈕”,這樣就完成webhook配置了,今後當前工程有程式碼提交,GitHub就會向此webhook地址發請求,通知Jenkins構建:
    這裡寫圖片描述

生成Personal access tokens

Jenkins訪問GitHub工程的時候,有的操作是需要授權的,所以我們要在GitHub上生成授權的token給Jenkins使用,這就是Personal access tokens,生成步驟如下:
1. 登入GitHub,進入”Settings”頁面,點選左下角的”Developer settings”,如下圖:
這裡寫圖片描述
2. 跳轉到”Developer settings”頁面後,點選左下角的“Personal access tokens”,如下圖:
這裡寫圖片描述
3. 跳轉到”Personal access tokens”頁面後,點選右上角的”Generate new token”按鈕,如下圖:
這裡寫圖片描述
4. 可能會提示輸入GitHub密碼,輸入後跳轉到建立token的頁面,如下圖所示,輸入title,再勾選”repo”和”admin:repo_hook”,再點選底部的”Generate token”按鈕,就能產生一個新的access token,將此字串複製下來,後面jenkins任務中會用到:
這裡寫圖片描述

Jenkins配置

  1. GitHub Plugin外掛,在”系統管理->管理外掛”位置檢查此外掛是否已經安裝,沒有的話請先安裝;
  2. 配置GitHub,點選“系統管理->系統設定”,如下圖:
    這裡寫圖片描述
  3. 在系統設定頁面找到”GitHub”,配置一個”GitHub Server”,如下圖,”API URL”填寫”https://api.github.com“,”Credentials”位置如下圖紅框所示,選擇”Add->Jenkins”:
    這裡寫圖片描述
  4. 彈出的頁面中,”Kind”選擇”Secret text”,”Secret”填入前面在GitHub上生成的Personal access tokens,Description隨便寫一些描述資訊,如下圖:
    這裡寫圖片描述
  5. 填寫完畢後,點選右側的”Test connection”按鈕,如果資訊沒有填錯,顯示的內容如下圖所示:
    這裡寫圖片描述
  6. 點選頁面最底部的”儲存”按鈕;

GitHub專案的專案主頁和倉庫地址

專案主頁和倉庫地址是不同的,如下圖,紅框1中是專案主頁,點選紅框2的按鈕後,紅框3中是倉庫地址(要用HTTPS的,不用SSH 的):
這裡寫圖片描述

新建構建專案

在Jenkins上新建一個maven構建專案,名為test003,如下圖:
這裡寫圖片描述

接下來設定test003的配置資訊,分為”原始碼管理設定”和”構建環境設定”兩部分;

原始碼管理設定

這裡寫圖片描述
上圖中每個紅框的設定如下解釋:
1. 選擇”Git”;
2. “Repository URL”輸入倉庫地址:https://github.com/zq2599/jenkinsdemo.git
3. “Credentials”建立一個Credentials,Kind選擇”Username with password”,Username輸入GitHub賬號,Password輸入GitHub密碼;
4. “原始碼庫瀏覽器”選擇”githubweb”;
5. “URL”輸入專案主頁:https://github.com/zq2599/jenkinsdemo
6. “構建觸發器”中勾選”GitHub hook trigger for GiTScm polling”;

構建環境設定

如下圖所示,勾選”Use secret text(s) or file(s)”,下面的”Credentials”選擇我們之前配置過的”Personal access tokens”
這裡寫圖片描述

設定完成後,點選頁面底部的”儲存”按鈕;

修改web工程程式碼並提交到GitHub

將GitHub倉庫的程式碼clone到本地,做一些修改然後提交到GitHub上,例如我修改了Hello.java中的原始碼(修改了sayHello方法的return的字串的內容),如下所示:

@RestController
public classHello {

    @RequestMapping("/")
    public String sayHello(){
        //修改返回的字串的內容
        return "abcdefg. Hello jenkins, " + new Date();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

提交到GitHub的操作如下圖所示:
這裡寫圖片描述

Jenkins自動構建

回到Jenkins的test003頁面,可以看到已經開始自動構建了,如下圖:
這裡寫圖片描述

驗證自動構建結果

  1. 在test003的頁面,點選”工作空間”->”工作區”,如下圖:
    這裡寫圖片描述
  2. 點選下圖紅框中的”mavendockerplugindemo-0.0.1-SNAPSHOT.jar”,瀏覽器就會下載這個檔案:
    這裡寫圖片描述
  3. 下載成功後,在mavendockerplugindemo-0.0.1-SNAPSHOT.jar所在目錄下執行命令java -jar mavendockerplugindemo-0.0.1-SNAPSHOT.jar,web應用啟動成功,如下圖:
    這裡寫圖片描述
  4. 瀏覽器輸入localhost:8080,可以看到web應用返回的內容是我們剛剛提交的最新內容,如下圖:
    這裡寫圖片描述

至此,GitHub提交觸發Jenkins自動構建的實戰就完成了,希望能對您搭建持續構建環境有所幫助。

相關推薦

GitHub提交程式碼觸發Jenkins自動構建

當我們提交程式碼到GitHub後,可以在Jenkins上執行構建,但是每次都要動手去執行略顯麻煩,今天我們就來實戰Jenkins的自動構建功能,每次提交程式碼到GitHub後,Jenkins會進行自動構建; 前期準備工作 進行本章的實戰前,推薦您參照《docker下的

使用gitGitHub提交程式碼

今天來簡單整理一下,如何利用git命令把程式碼提交到GitHub平臺上去,當然要提交程式碼到GitHub上去,您首先得要有GitHub賬號,賬號如何申請這裡就不多做解釋了 第一步: 先到官網下載git安裝包進行安裝,安裝好之後,找到安裝路徑下的git-bash.exe,開啟,輸

解決`github提交程式碼是老要輸入使用者名稱密碼`的問題 (試了一下,靠譜)

在命令列輸入命令: git config --global credential.helper store ☞ 這一步會在使用者目錄下的.gitconfig檔案最後新增:  [credential]      helper = store 現在push你的程式碼 (

SVN怎麽觸發Jenkins自動構建

tps pat adding 403錯誤 啟用 html roc png body 通常,有幾種方式可以在SVN倉庫發生改變時觸發Jenkins進行構建。第一種是,Jenkins主動輪詢SVN倉庫;第二種是,在SVN客戶端(如TortoiseSVN)創建客戶端hooks來觸

gitlab hook觸發jenkins自動構建

意義,gitlab推送或合併程式碼後觸發jenkin自動構建釋出程式碼或者執行命令推送規則 1.安裝gitlab和hook外掛    有時需要重啟jenkins服務,可能相容性問題,安裝完之後構建中看不到hook外掛        

gitlab實現webhook觸發jenkins 自動,構建,測試,push webhook構子 總結

ref 安裝 harbor 14. 允許 安全管理 rbo 觸發器 代碼 最新一直在學習 工作 + 學習 去掉 90% 所以blog 一直沒更 真是很不好! exsi ceph gitlab jenkins harbor k8s docker-compose ap

Gitlab利用Webhook實現Push程式碼後的jenkins自動構建

之前部署了Gitlab的程式碼託管平臺和Jenkins的程式碼釋出平臺。通常是開發後的程式碼先推到Gitlab上管理,然後在Jen

GitLab提交程式碼之後自動觸發Jenkins構建

GitLab伺服器和Jenkins伺服器可以通過Web Hook的方式進行通訊。 1)在Jenkins伺服器中,安裝GitLab

使用git往github提交程式碼出現[packet_write_wait connection to xx.xx.xx.xx Broken pipe]錯誤的解決辦法

使用git往github上提交程式碼時出現[packet_write_wait connection to xx.xx.xx.xx Broken pipe]錯誤的解決辦法:         找到git安裝的目錄/etc/s

GitHub 系列之「GitHub 提交代碼」

顯示 指定 簡單 搜索 lan fig linu storm push 1.SSH 你擁有了一個 GitHub 賬號之後,就可以自由的 clone 或者下載其他項目,也可以創建自己的項目,但是你沒法提交代碼。仔細想想也知道,肯定不可能隨意就能提交代碼的,如果隨意可以提交代

解決`github提交代碼是老要輸入用戶名密碼`

信息 更改 文本 就是 === AC helper 作用 linux 我曾經切換過一次github賬號, 似乎還更改過一次github賬號的密碼, 然後呢? 然後就是每次向github提交代碼時都要輸入用戶名密碼(猜測是由於上述原因導致), 每次都是啊, 這也忒麻煩了, 於

利用GitLab webhook來實現觸發Jenkins自動操作

監聽 ab測試 匿名 jenkin 本機 事件 版本 strong host 本文針對如何設置GitLab以及Jenkins,實現每次GitLab上有提交事件的時候,都能觸發Jenkins執行相應的操作,主要分為以下幾個步驟: 1、新建GitLab測試用例 進入個人GitL

通過Jenkins自動構建dubbo服務的問題匯總

搜索 內容 正常 odin 1.0 tails net sta cau 最近接觸新的dubbo項目,項目初始時,測試環境的提供者服務發布較頻繁,奈何公司又沒有自動發布工具,遂自己在測試環境中搭建了Jenkins用於dubbo服務的發布。由於第一次使用,過程中也遇到了一些問

eclipse下使用git提交程式碼,設定忽略不需要提交的檔案

eclipse下使用git提交程式碼時,有很多檔案是不需要提交的,例如:target目錄下的檔案和classes下的檔案都不需要提交。 這裡講解一下如何忽略不必要的檔案。 方案一: 為專案新增.gitignore檔案,在該檔案中配置需要忽略的檔案。(Eclips

IntelliJ IDEA中用git提交程式碼忽略檔案的設定

在用intellijidea開發時,經常會用git或其他版本管理工具提交程式碼到遠端。 但是idea預設會把所有隻要本地與遠端不同的檔案都會列出來, 實際上像字尾名是.iml, .idea這類檔案是不需要提交的。 如下圖所示 如果每次都手動取消這些檔案,都是些重複性的操作。 按如下操作可一

Git -- 解決github提交程式碼不用輸入密碼

解決方案: 方案一: 在你的使用者目錄下新建一個文字檔案.git-credentials Windows:C:/Users/username Mac OS X: /Users/username Linux: /home/

gitHub提交程式碼

 first commit  這邊我沒有使用git提交工具,例如:sourcetree , git extension  現在是覺得工具還不算直接上命令來的合適…… 所以git Bach命令列的方式成了我的首選~    在初次使用git的時候,需要我們在git上通過命令 寫

Github提交程式碼流程

  pull:是下拉程式碼,相等於將遠端的程式碼下載到你本地,與你本地的程式碼合併 push:是推程式碼,將你的程式碼上傳到遠端的動作 完整的流程是: 第一種方法:(簡單易懂) 1、git add .(後面有一個點,意思是將你本地所有修改了的檔案新增到暫存區) 2、git co

解決 GitHub 提交程式碼,不統計顯示綠色的問題

解決 GitHub 提交程式碼,不統計顯示綠色瓷片的問題 給 GitHub 提交程式碼可以獲取響應的貢獻綠色瓦片,但是之前我怎麼提交都不顯示,後來發現你提交的使用者名稱和郵箱要和專案建立的使用者名稱和郵箱一致就可以顯示綠色瓦片了。 檢視當前 git 使用者名稱和郵箱 g

Eclipse git提交程式碼採用彈窗模式

採用eclipse-oxygen版本,什麼都好,就是往git倉庫提交程式碼時,居然不是彈框,很不適應: 選擇需要提交的檔案也比較麻煩, 怕出錯,還是希望回到那種彈窗模式。這就需要設定了。 Window->Preferences->Team->Git-&g