实战:向GitHub提交代码时触发Jenkins自动构建
當我們提交代碼到GitHub后,可以在Jenkins上執行構建,但是每次都要動手去執行略顯麻煩,今天我們就來實戰Jenkins的自動構建功能,每次提交代碼到GitHub后,Jenkins會進行自動構建;
原文地址:http://blog.csdn.net/boling_cavalry/article/details/78943061
前期準備工作
進行本章的實戰前,推薦您參照《docker下的Jenkins安裝和體驗》做安裝和體驗的實戰,以便對Jenkins服務有初步了解;
重要前提
demo工程源碼
本次用來在Jenkins上構建的工程是個springboot的web工程,地址是:git@github.com:zq2599/jenkinsdemo.git,用瀏覽器訪問的地址是:https://github.com/zq2599/jenkinsdemo.git;?
代碼很簡單,只有一個controller,接收http請求返回一個字符串,如下所示:
您需要在自己的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地址就是http://192.168.0.1:8080/github-webhook
再次提醒,上述地址必須是外網也能訪問的,否則GitHub無法訪問到Jenkins;
配置GitHub
生成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配置
GitHub項目的項目主頁和倉庫地址
項目主頁和倉庫地址是不同的,如下圖,紅框1中是項目主頁,點擊紅框2的按鈕后,紅框3中是倉庫地址(要用HTTPS的,不用SSH 的):?
項目主頁:https://github.com/zq2599/jenkinsdemo?
倉庫地址:https://github.com/zq2599/jenkinsdemo.git
新建構建項目
在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 class Hello {@RequestMapping("/")public String sayHello(){//修改返回的字符串的內容return "abcdefg. Hello jenkins, " + new Date();} }提交到GitHub的操作如下圖所示:?
Jenkins自動構建
回到Jenkins的test003頁面,可以看到已經開始自動構建了,如下圖:?
驗證自動構建結果
至此,GitHub提交觸發Jenkins自動構建的實戰就完成了,希望能對您搭建持續構建環境有所幫助。
轉載于:https://www.cnblogs.com/yhaing/p/8568076.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的实战:向GitHub提交代码时触发Jenkins自动构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 基础总结。
- 下一篇: 战火勋章集团军战术熟练度怎么刷