1. 程式人生 > >jenkinsCI初探(推薦閱讀)

jenkinsCI初探(推薦閱讀)

0.前言

環境:linux(mint or others)

目標:自動構建deb包

任務簡述:

專案組需要一個可以自動構建的環境。其主要目的是自動生成一個linux下編譯環境的安裝包。其中,要維護3個github遠端的git庫,和一個自己伺服器的打包檔案。

1.安裝初步

進入官網選擇最近版本 1.進入官網,點選“Use Jenkins” \

2.如果你想要安裝Jenkins,點選"Installing Jenkins" \

3.本文環境是在Linux下,可以用Unix的Ubuntu環境安裝,apt-get 或者Debian包。 \

4.使用命令安裝Jenkins \

5.如果想要了解(建議你瞭解)安裝做了什麼,下面的話說了很多。

1. Jenkins的預設環境安裝在了/var/lib/jenkins下面,本文使用了這個預設的資料夾,當然如果為了jenkins新建一個使用者名稱後(這個是必須的,預設會新建),也可以放在/jenkins/home/下面。2. 部署jenkins的基本環境。包或了添加了jenkins的使用者。Others. Jenkins為了能夠跟java無縫對接,jenkins將一些部署的檔案放在了war包裡面,如果感興趣可以嘗試定製自己的東西。不過Jenkins並不歡迎你這麼做。Tips:我發現其實Jenkins只是用了這幾個目錄。 /var/lib/jenkins /var/log/jenkins /var/cache/jenkins 
\



2.Jenkins部署初步

2.1 重要概念

在部署前,先需要對jenkins進行簡要理解。

Jenkins是一個開源的實現持續整合的軟體工具。官方網站:http://jenkins-ci.org/。也就是說,我們在專案中借用Jenkins來持續構建軟體。就相當於託付別人辦事一樣,我們只能監督事情的目的,結果,而不需要也不應該參與事情辦理打全過程。通過一些初步部署工作發現,Jenkins在CI過程中不會使用系統使用者的許可權,而是使用使用者(你)賦予Jenkins的許可權,用Jenkins來代理一切事物。(jenkins讀取你在web中的配置,使用它在本地的許可權,使用jenkins瞭解的ssh許可權進行與遠端的訪問)

如果,你在配置中遇到Permission Deny 或者是一些ssh key的問題,是因為你並沒有理解上一段的含義。

2.2 jenkins外掛

如果你只需要進行java的環境部署的話,恭喜你,系統已經預先安裝了java需要的所有外掛,這是因為jenkins的前身huston本來就是為了java的部署服務的,這不是本文討論核心。 對於Git來說,需要幾個東西。 Git plugin:這個外掛是用來同步git庫的。 Multiply SCMs: 多個SCM通道,每一個SCM都可以部署一個Git。用過Git庫的人會問道,Git plugins不是可以同步多個庫麼?為什麼要用這個。答案是:儘管Git庫可以同步多個git庫,但是需要注意的是Git外掛提供branch選項儘管可是該多個,但是是針對與每一個庫同時檢索多個branch,這個不符合我們使用的原則。對於部署來說,只需要呼叫一個Git庫中的一個分支,所以我媽需要這個plugins。

2.3 jenkins的系統設定

如果你開啟打是一個已經安裝好打jenkins的話,就像下面打圖一樣,在預設的網址 localhost:8080中開啟部署好的jenkins。如果是剛剛安裝過的jenkins,則MainView中不會有東西。

本文以Chrome瀏覽器為例,因為系統預裝的是中文,所以jenkins可以識別,並對大部分內容進行了漢化。細心的人可能已經發現了右上角進入登入介面;如果是第一次使用打話沒有登入,是以匿名使用者身份進行設定的。不過沒有關係,因為在許可權設定前,匿名賬戶會獲得所有許可權的。

\

點選左側的”系統管理“

\

點選主介面中的”外掛管理“,然後點選”可選外掛“ 找到需要打外掛,然後點在下方安裝按鈕。(PS:如果你找不到安裝按鈕,可以放大縮小瀏覽器的顯示比例,jenkins並沒有很好的研究web端介面)

\

3. Git 外掛初探

首先,由於Jenkins沒有預設安裝Git外掛,需要Git庫同步時候,需要手動選擇安裝git外掛。

3.1 Git plugin 安裝

3.1.1 未安裝前的樣子

下圖是沒有安裝git庫的時候的樣子,發現“原始碼管理”中沒有git,這是由於jenkins沒有預設安裝git外掛的緣故。

\

3.1.2安裝git plugin

在“系統管理”->“管理外掛”中找到,“可選外掛”選項卡。“過濾“(一個名為過濾的搜素視窗)中可以用鍵盤輸入Git來查詢。

我們只點git plugin,jenkins會自動為我們新增其依賴的外掛如下圖。

\

等待安裝,如果勾選下方的”安裝完成後重啟Jenkins“的話,會jenkins會重啟;或者可以在瀏覽器中輸入”localhost:8080/restart“來重啟jenkins。

\

3.2 安裝Multiple SCMs外掛

儘管Git外掛可以做到同步多個git庫,但是隻能同步多個git庫的同一個分支,如果你的專案恰好需要不同庫的不同分支進行同步的話,這就需要Multiple SCMs外掛了。

\

等待安裝

\

安裝後的效果:在原始碼管理中可以點選”Multiple SCMs“

\

點選”AddSCM“,點選Git,可以加入多個庫。

\

3.3GitHub plugin 安裝

3.3.1 安裝

同樣的在可選外掛中選擇”GitHub plugin“,jenkins同樣會幫助你安裝其依賴的其他外掛。

\

3.3.2安裝效果

可以在Build時候選擇,”Build when a change is pushed to GitHub“,當GitHub更新的時候,重建。

\

3.4 新建Git專案

新建一個專案:(點選左欄選單的新建)

因為是要與Git同步,所以選擇的是沒有預先設定的專案(構建一個自由風格打軟體專案 free-style)。

\

點選"OK"後看到下圖,當然,會發現有些東西並沒有向下面這麼全(這是因為我安裝了很多其他打外掛去嘗試,比如GerritRepo等,不過這個跟本文關係比較少,這裡不做介紹)

\

選擇"原始碼管理"下的"Git"選項

點選Add新增一個私鑰,在A處填寫你的姓名,將ssh生成的私鑰用gedit or vi開啟,將內容複製到B處。

\

如果發現,新增後有紅色字型,則證明有問題,Jenkins在這裡使用了一個簡單的clone命令來嘗試新增的私鑰是否正確。(用ssh連結git庫:[email protected]:yourteam/yourproject/)

\

這裡可以該git的分支,預設分支是origin下的master分支,在介面中可以改為origin下的任意其他分支。
改變源為遠端upstream源 \
結果 \

3.1 GerritRepo外掛

3.1.1 寫在開始——需要注意的事情

GerritRepo需要做的內容完全可以在shell中進行,它的存在只不過是用來簡練了程式碼。
4. Shell & Repo(python) Jenkins可以執行指令碼,只要你裝外掛,php,python都可以跑。但是,本文發現,Jenkins中執行source語句並不理想,也許是因為Jenkins固定指向的sh是bash,而ubuntu中預設的是dash的原因。本文采取的方法是,將想要執行打語句寫入一個指令碼中,並在指令碼第一行註釋出用什麼sh執行,來規避可能存在的風險。 1. 本文采用在shell中直接讀repo的絕對路徑在初始化。 2. 在workspace中編寫一個sh,用bash執行。 \

5. 其他

5.1 build部署

我們可以設定按照某種週期來執行build(與crontab中相似,5個引數代表了:小時,天,月,年,十年) \



5.2 一個關鍵的設定

如果你沒有設定build的策略很肯能出現這個問題,由於頻率過高或者程式碼一直在更新,很短時間內,build版本號擠壓太多。\
而我們想要的結果是這樣的,無論多少個build,都保留最近幾天打build \

只需要設定一下策略就好 \

轉載:http://www.2cto.com/os/201502/375026.html


相關推薦

jenkinsCI初探(推薦閱讀)

0.前言 環境:linux(mint or others) 目標:自動構建deb包 任務簡述: 專案組需要一個可以自動構建的環境。其主要目的是自動生成一個linux下編譯環境的安裝包。其中,要維護3個github遠端的git庫,和一個自己伺服器的打包檔案。 1.

推薦閱讀

全能 作品 ssh 騰訊 jquery ice ner sta 應用 可以先從閱讀開始,推薦閱讀順序:《javascript+dom編程藝術》 --> 《鋒利的jQuery》 --> 《javascript高級程序設計》(第三版)--> 《javascri

《人性的優點》推薦閱讀

沒有 最大的 -c 所有 要去 style 未來 事情 怎麽辦 1,最重要的是不要去看遠處模糊的,而要去做手邊清楚的事 2,明天的重擔加上昨天的重擔,必將成為今天最大的障礙 3,把今天的工作做的盡善盡美,是迎接未來最好的方法 4,對於聰明人來說,每一天都是一個新的生命 5,

關於演算法-推薦閱讀

機器學習-波瀾壯闊40年 SIGAI 2018.4.13. 學好機器學習需要哪些數學知識? 人臉識別演算法演化史 基於深度學習的目標檢測演算法綜述 卷積神經網路為什麼能稱霸計算機視覺領域? 用一張圖理解SVM的脈絡 人臉檢測演算法綜述 理解神經網路的啟用函式 深度卷積神經網路演化歷史及結

推薦閱讀《贏在下班後》

提高 會有 自己的 過程 嘗試 高考 養成 時也 狀態 簡單說說,我是怎麽與這本書相遇的,作為一個開發人員,每天早上,就會有二十幾分鐘時間瀏覽瀏覽一些技術前沿的新聞,同時也會光顧下一些博客網站。今天在CSDN中看到關於這本書的讀書心得置頂,所以就看看,沒想看到一看就有些入迷

WKWebView使用及注意點(預防踩坑)------強烈推薦閱讀!!!

iOS8之後,蘋果推出了WebKit這個框架,用來替換原有的UIWebView,新的控制元件優點多多,不一一敘述。由於一直在適配iOS7,就沒有去替換,現在仍掉了iOS7,以為很簡單的就替換過來了,然而在替換的過程中,卻遇到了很多坑。還有一點就是原來寫過一篇文章 Ob

Java程式設計師的推薦閱讀書籍

作為Java程式設計師來說,最痛苦的事情莫過於可以選擇的範圍太廣,可以讀的書太多,往往容易無所適從。我想就我自己讀過的技術書籍中挑選出來一些,按照學習的先後順序,推薦給大家,特別是那些想不斷提高自己技術水平的Java程式設計師們。 在這份推薦閱讀書籍的名單中,我沒有列舉流

微信小程式初探(二):閱讀官方demo原始碼

閱讀demo有助於理解邏輯,而且demo原始碼中應該包含了框架開發人員想要表達的意思的精華,先從app.js著手來閱讀。 附帶貼下說明: //app.js App({ onLaunch: function () { // 展示本地儲存能力 var logs = wx.getSt

推薦閱讀《明朝那些事兒》

 遇到好書,就和大家分享一下:) 到今天為止,終於看完《明朝那些事兒》了,非常不錯的一本書。也許對歷史瞭解比較清除的人可能已經不屑於我的這些評價了,不過對於類同於我這樣的瞭解歷史僅限於歷史教科書的人來說,讀一下這本書是很有好處的。 好處之一是這本書好讀,作者用的都是通俗語言

推薦閱讀的多核程式設計技術書籍

 多核程式設計技術好書推薦多核程式設計技術——通過軟體多執行緒提升效能 , 作 者: (孟加拉)阿克特(Akhter,S.),(美)羅伯茨(Roberts,J.) 著,李寶峰,富弘毅,李韜 譯本書從原理、技術、經驗和工具等方面為讀者提供關於多核程式設計技術的全方位解釋。本書由

初探推薦演算法:基於使用者的協同過濾演算法

基於使用者的協同過濾演算法 一、基本思路 在一個推薦場景,你需要給使用者推薦一些商品,基本思路是: (1)找到和目標使用者興趣相似的使用者集合。 (2)找到這個集合中的使用者喜歡的,且目標使用者沒有聽說過的物品推薦給目標使用者。 二、相似度度量

和君諮詢推薦閱讀書目單

一個人的閱讀史,往往就是他/她的精神成長史和能力發育史。 但凡職業高手,始學於知識,悟道於實踐,境界至高則臻於法無定法,遊刃於無形。底蘊的厚度決定事業的高度,合理的知識結構支撐起職業高手。依據和君的體會,成就一個企業經營和管理、投資和投行的職業高手,需要具備的

百家號不收錄限流無推薦閱讀為零抄襲的解決方法!

話說小四開通百家號也有快一個月時間了,7天由新手到初級作者。期間陸陸續續發表了一些自己的原創和偽原創文章,點選量有0~1500不等。 ​看看別人隨便發個視訊上百萬點選煞是羨慕啊! 於是,心裡的小九九也活動開了,按照自己3671的點選有3.57元的比例來算,和網上大神

電子書閱讀器安卓版推薦 PDF閱讀器也可輕松編輯文檔了

pdf閱讀器推薦 安卓pdf閱讀器 在電子書的各種格式中,你最青睞哪種呢?是mobi、txt、還是PDF,相信很多人和小編一樣喜歡閱讀 PDF格式的電子書,這時候選擇一款合適的PDF閱讀器就十分重要了。那麽,電子書閱讀軟件哪個好呢?在回答這個問題之前,我們先考慮這樣一個問題,我們需要一款什麽樣的PDF

生活英語讀寫MOOC-Literature Tutor-有聲名著閱讀推薦

and 鏈接 lan ttl 下載 live black tro 閱讀 生活英語讀寫MOOC-Literature Tutor-有聲名著閱讀推薦 1. Alice‘s Adventures in Wonderland 愛麗絲漫遊奇境記 音頻與文本下載地址:鏈接:http

chrome瀏覽器閱讀模式神器推薦

eas 關於 blog AD 模式 很好 pos mark body 2018-4-7 11:17:58 關於chrome閱讀模式,今早嘗試了4款瀏覽器閱讀器,發現幾款非常棒的: 評價最高: EasyReader, 牛逼的是可以自己頁面中的模塊進行閱讀,美中不足的是生成的閱

Java程式設計師從入門到進階技術書籍推薦十個系列最全50+本附閱讀技術書方法論(珍藏版)

轉載自某大佬部落格:https://pymlovelyq.github.io/2018/10/26/java/ 前言:技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特

演算法與資料結構技術書籍從入門到進階推薦適合大神小白附技術書閱讀方法論【附網盤連結】

轉載自某大佬部落格 https://pymlovelyq.github.io/2018/10/06/Algorithm/ 前言:技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總

C語言系列必讀技術書單推薦從入門到進階+技術書閱讀方法論

轉載自某大佬部落格:https://pymlovelyq.github.io/2018/10/10/CC/ 前言:技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特別好

Java從入門SE到進階EE技術書籍推薦最全50+本附閱讀技術書方法論

轉載自某大佬部落格:https://pymlovelyq.github.io/2018/10/26/java/ 前言:技術書閱讀方法論 一.速讀一遍(最好在1~2天內完成) 人的大腦記憶力有限,在一天內快速看完一本書會在大腦裡留下深刻印象,對於之後複習以及總結都會有特