主頁 >  其他 > 【Jenkins 學習筆記】玩轉持續集成與持續交付

【Jenkins 學習筆記】玩轉持續集成與持續交付

2022-01-17 21:37:20 其他

目錄

1 Jenkins 概述

2 持續集成

3 JavaEE 專案部署方式對比

4 Jenkins + Git 持續集成環境搭建


1 Jenkins 概述

Jenkins 是一個開源軟體專案,是基于Java開發的一種可拓展持續集成工具,主要用于持續、自動地構建 / 測驗 / 集成軟體專案以及監控一些定時執行的任務

Jenkins擁有的特性包括:

易于安裝,只要把 jenkins.war 部署到 Tomcat 即可運行

易于配置,所有配置都是通過其提供的 web 界面實作

集成 RSS/E-mail,通過 RSS 發布構建結果或當構建完成時通過 e-mail 通知

生成 JUnit / TestNG 測驗報告

分布式構建,支持 Jenkins 能夠讓多臺計算機一起構建/測驗

檔案識別,Jenkins 能夠跟蹤哪次構建生成哪些 jar,哪次構建使用哪個版本的 jar 等

插件支持,支持擴展插件,你可以開發適合自己團隊使用的工具

2 持續集成

持續集成(Continuous integration)是一種軟體開發實踐,即團隊開發成員經常集成他們的作業,通過每個成員每天至少集成一次,也就意味著每天可能會發生多次集成,每次集成都通過自動化的構建(包括編譯,發布,自動化測驗)來驗證,從而盡快地發現集成錯誤,一個標準的持續集成系統能做到

軟體構建自動化:配置完成后,CI 系統會依照預先制定的時間表或者針對某一特定事件,對目標軟體進行構建

構建可持續的自動化檢查:CI 系統能持續地獲取新增或修改后嵌入的源代碼,也就是說,當軟體開發團隊需要周期性的檢查新增或修改后的代碼時,CI 系統會不斷確認這些新代碼是否破壞了原有軟體的成功構建,這減少了開發者們在檢查彼此相互依存的代碼中變化情況需要花費的時間和精力

構建可持續的自動化測驗:構建檢查的擴展部分,構建后執行預先制定的一套測驗規則,完成后觸發通知(Email,RSS等等)給相關的當事人

生成后后續程序的自動化:當自動化檢查和測驗成功完成,軟體構建的周期中可能也需要一些額外的任務,諸如生成檔案、打包軟體、部署構件到一個運行環境或者軟體倉庫,這樣,構件才能更迅速地提供給用戶使用,

部署一個 CI 系統需要的最低要求是,一個可獲取的源代碼的倉庫,一個包含構建腳本的專案,下圖概括了CI系統的基本結構:

該系統的各個組成部分是按如下順序來發揮作用的:

1、開發者檢入代碼到源代碼倉庫

2、CI 系統會為每一個專案創建了一個單獨的作業區,當預設或請求一次新的構建時,它將把源代碼倉庫的原始碼存放到對應的作業區

3、CI 系統會在對應的作業區內執行構建程序

4、(配置如果存在)構建完成后,CI 系統會在一個新的構件中執行定義的一套測驗, 完成后觸發通知(Email,RSS 等等)給相關的當事人

5、(配置如果存在)如果構建成功,這個構件會被打包并轉移到一個部署目標(如服務器)或存盤為軟體倉庫中的一個新版本,軟體倉庫可以是 CI 系統的一部分,也可以是一個外部的倉庫,諸如一個檔案服務器或者像 Java.net、?SourceForge 之類的網站

6、CI 系統通常會根據請求發起相應的操作,諸如即時構建、生成報告,或者檢索一些構建好的構件

而 Jenkins 就是這樣一個 CI 系統

3 JavaEE 專案部署方式對比

手動部署

自動部署

“自動化” 的具體體現:向版本庫提交新的代碼后,應用服務器上自動部署,用戶或測驗人員使用的馬上就是最新的應用程式

搭建上述持續集成環境可以把整個構建、部署程序自動化,很大程度上減輕作業量,對于程式員的日常開發來說不會造成任何額外負擔——自己把代碼提交上去之后,服務器上運行的馬上就是最新版本——一切都發生在無形中

4 Jenkins + Git 持續集成環境搭建

4.1 系統結構總述

創建虛擬機安裝 Linux 系統(這里用的 Ubuntu 16.04 64位)

版本控制子系統

GitHub 服務器

專案對應版本庫

版本庫中鉤子程式

持續集成子系統

JDK

Tomcat

Maven

Jenkins

主體程式

Maven 插件

Deploy to Web Container 插件

4.2 測驗專案 與 版本控制子系統

使用 IDEA 創建一個 基于 Maven 的 JavaWeb 專案并上傳到 GitHub 中

至于怎么創建專案和上傳到 GitHub 這里就不一 一贅述了,下面給出參考

IDEA + Maven + JavaWeb專案搭建

【Git 常見命令】玩轉 Git ——分布式版本控制系統

4.3 應用發布子系統

即創建一個 Linux 虛擬機,并安裝好 jdk、maven、git 、Tomcat,這里也不一 一贅述了,下面給出參考

Ubuntu 16.04安裝JDK8

Ubuntu下Maven安裝和使用

ubuntu 16.04 安裝git的方法

ubuntu16 tomcat7安裝和編碼修改

tomcat7配置管理員帳號密碼

4.4 Jenkins 主體程式安裝配置

首先 下載 Jenkins ,將 jenkins.war 放在 Tomcat 的解壓目錄下的 /webapps 目錄下

啟動 Tomcat 并訪問 http://虛擬機IP:8080/jenkins

依照網頁上的提示填入檔案內容(也是 admin 的密碼),點繼續

選擇【安裝推薦的插件】

如果某些插件安裝失敗,重試即可,接著可以新建賬號或者以管理員身份繼續,這里新建一個管理員賬號

開始使用 Jenkins !

4.5 系統初始化設定

點擊左側【系統管理-全域安全配置】

點擊左側【系統管理-全域工具配置】,設定 Maven 的 settings.xml 的默認路徑和全域默認路徑,JDK 的別名和環境變數 JAVA_HOME (注意去掉自動安裝的勾選),Git 的別名和 Git 的可執行檔案路徑(注意去掉自動安裝的勾選)

繼續在全域工具配置頁面,配置 Maven 的路徑,最后點擊【保存】(如果有 Gradle / Docker 的可以繼續配置)

4.6 安裝插件

點擊【管理插件】,然后選擇【可選插件】,找到【Deploy to container】,選擇【直接安裝】

4.7 創建工程

1、點擊【新建任務】,輸入專案名稱,選擇【構建一個自由風格的軟體專案】,最后點【確定】

2、確定之后來到專案設定頁面,點擊【原始碼管理】,選擇 【Git】,首先填入倉庫的 URL ,然后點擊 【Add】,選擇【jenkins】,添加 GitHub 的賬號密碼,然后選擇你所添加的 GitHub 的【憑證】

PS:這里指定的倉庫地址是要定位到【pom.xml】檔案所在的檔案夾,因為 Jenkins 就是到專案根目錄下查找【pom.xml】的

3、點擊專案設定頁面中的【構建】,選擇【Invoke top-level Maven targets】

然后選擇指定 Maven 的版本,最后在【Goals】中指定執行的 Maven 構建命令

4、點擊專案設定頁面中的【構建后操作】,選擇【Deploy war/ear to a container】

在【WAR/EAR files】中填入 war 包以專案根目錄為基準的相對路徑,然后【Context path】中填入瀏覽器訪問專案時使用的專案名,然后點擊【Add Container】指定一個容器,并添加 Tomcat 的登錄憑證,指定 Tomcat URL

最后點擊【保存】

5、保存之后來到了專案界面,目前不能點作業區,因為里面沒有檔案,我們先點【立即構建】生成作業區

PS:在 jenkins 中,其使用天氣狀況來表示構建成功率

6、點擊專案中的【配置-構建觸發器】

遠程觸發的基本原理是 Git 服務器給 Jenkins 專案特定的 URL 地址發送請求, 但必須以請求引數的形式攜帶一個特定值,這個特定值就是這里的 “身份驗證令牌”

假設

我們這個專案的地址觸發地址是

http://192.168.70.131:8080/ jenkins/job/HelloWorld/build

身份驗證令牌是

CLOUD_TOKEN

那么最終的訪問地址就是:http://192.168.70.131:8080/jenkins/job/ HelloWorld/build?token = CLOUD_TOKEN

觸發訪問地址中 Jenkins 訪問地址是根據實際情況改變的,專案名稱根據實際 情況改變, 其他都不變

4.8 編輯 Git 版本庫鉤子程式

感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接免費拿走:

① 2000多本軟體測驗電子書(主流和經典的書籍應該都有了)

② 軟體測驗/自動化測驗標準庫資料(最全中文版)

③ 專案原始碼(四五十個有趣且經典的練手專案及原始碼)

④ Python編程語言、API介面自動化測驗、web自動化測驗、App自動化測驗(適合小白學習)


⑤ Python學習路線圖(告別不入流的學習)

上圖的資料 在我的QQ技術交流群里(技術交流和資源共享,廣告進來腿給你打斷)

可以自助拿走,群號953306497(備注“csdn111”)群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413670.html

標籤:其他

上一篇:OS-簡介

下一篇:Linux學習筆記(一)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more