CI流程介紹
如果不不斷改進(jìn),現(xiàn)代軟件開(kāi)發(fā)過(guò)程是不可能的。 每次更改都會(huì)有多個(gè)版本,并且只有經(jīng)過(guò)完整測(cè)試的完整版本才能投入生產(chǎn)。
持續(xù)集成(CI)是驗(yàn)證所有這些構(gòu)建的創(chuàng)建和全面測(cè)試的過(guò)程。 這樣,開(kāi)發(fā)人員可以確保每個(gè)新更改都按計(jì)劃進(jìn)行,并且所有其他模塊和功能也都正確。
該過(guò)程不能是手動(dòng)的。 這將太長(zhǎng),麻煩且復(fù)雜。 反過(guò)來(lái),持續(xù)集成的自動(dòng)化提供了各種好處:
開(kāi)發(fā)人員有更多時(shí)間,因?yàn)樗麄儫o(wú)需手工制作數(shù)據(jù)庫(kù)腳本并手動(dòng)部署它們。
對(duì)于每個(gè)版本,任何問(wèn)題或錯(cuò)誤都易于檢測(cè)。
只需單擊幾下鼠標(biāo),數(shù)據(jù)庫(kù)部署就會(huì)變成一個(gè)簡(jiǎn)單的過(guò)程。
最大的優(yōu)點(diǎn)是自動(dòng)化消除了應(yīng)用程序和數(shù)據(jù)庫(kù)版本出錯(cuò)的風(fēng)險(xiǎn)。 后者至關(guān)重要,因?yàn)閿?shù)據(jù)庫(kù)是應(yīng)用程序的核心。 丟失數(shù)據(jù)庫(kù)中的任何錯(cuò)誤都會(huì)導(dǎo)致更多問(wèn)題。
Jenkins持續(xù)集成服務(wù)器的特殊性
關(guān)鍵要素是持續(xù)集成服務(wù)器。 它是管理構(gòu)建,測(cè)試和部署它們,報(bào)告結(jié)果以及為開(kāi)發(fā)人員和分析人員記錄所有詳細(xì)信息的動(dòng)力。 在這項(xiàng)技術(shù)的領(lǐng)導(dǎo)者中,值得一提的是詹金斯(Jenkins)。
Jenkins CI服務(wù)器是一種非常流行的開(kāi)源解決方案,具有廣泛的自動(dòng)化選項(xiàng)。 它還允許通過(guò)API和第三方構(gòu)建工具集成其他應(yīng)用程序,從而變得更強(qiáng)大。 許多專家認(rèn)為Jenkins是CI服務(wù)器標(biāo)準(zhǔn)。
它在Java環(huán)境中運(yùn)行,因此與Windows,Unix或Linux兼容。 由于具有開(kāi)源特性,因此它是許多較小的公司的默認(rèn)選擇,這些公司可以下載并使用。 數(shù)量眾多的庫(kù)和插件使用戶可以根據(jù)自己的所有需求以及任何復(fù)雜的操作來(lái)調(diào)整CI服務(wù)器的性能。
使用Devart dbForge插件在Jenkins上進(jìn)行DevOps自動(dòng)化
適用于SQL Server的Devart dbForge DevOps Automation確保Jenkins CI服務(wù)器的支持。 有一個(gè)專用插件來(lái)在Jenkins上建立和配置所有連續(xù)集成階段:
構(gòu)建階段:該解決方案可確保將數(shù)據(jù)庫(kù)部署在LocalDB或其他指定的SQL Server上。 它還從版本控制存儲(chǔ)庫(kù)生成NuGet軟件包。
測(cè)試階段:插件啟動(dòng)tSQLt單元測(cè)試并生成測(cè)試數(shù)據(jù)。
同步階段:部署生成的NuGet軟件包,并將其與工作數(shù)據(jù)庫(kù)同步。
發(fā)布階段:該工具將生成的NuGet包放入NuGet提要中以進(jìn)行部署。
適用于SQL Server的Devart dbForge DevOps Automation可讓用戶降低數(shù)據(jù)庫(kù)發(fā)布成本,提高更新質(zhì)量和總體工作流程,并將部署錯(cuò)誤的風(fēng)險(xiǎn)降至最低。 此外,我們將在實(shí)際情況下研究此插件的用法。
如果您從未使用過(guò)Devart產(chǎn)品,則需要將它們安裝在用作構(gòu)建代理的機(jī)器上。 選擇以下選項(xiàng)之一(每種提到的工具都有功能齊全的試用版):
?dbForge SQL工具包包括在Jenkins CI服務(wù)器上設(shè)置DevOps所需的所有工具。
dbForge Studio for SQL Server是一個(gè)多功能的多用途解決方案,其中包括DevOps自動(dòng)化功能。
最后,您可以使用專門(mén)用于執(zhí)行DevOps任務(wù)的dbForge工具:SQL Server的dbForge Schema Compare,SQL Server的dbForge數(shù)據(jù)泵,SQL Server的dbForge數(shù)據(jù)生成器和SQL Server的dbForge單元測(cè)試。
此外,您還需要適用于SQL Server的dbForge DevOps Automation PowerShell-從PowerShell庫(kù)中獲取并安裝。
安裝插件
標(biāo)準(zhǔn)Jenkins集合中包含用于SQL Server的dbForge DevOps Automation插件。 因此,您可以按照與所有其他插件相同的方式來(lái)安裝它。
1.在Jenkins主頁(yè)窗口中,導(dǎo)航至Manage Jenkins> Manage Plugins:

2.在``可用''選項(xiàng)卡上,選擇dbForge DevOps Automation for SQL Server插件(您可以使用``搜索''選項(xiàng)更快地找到它)。
3.然后,使用默認(rèn)的Jenkins選項(xiàng)安裝插件:

創(chuàng)建一個(gè)新的SQL CI作業(yè)
安裝插件后,我們將創(chuàng)建一個(gè)持續(xù)集成作業(yè)。
1.導(dǎo)航到Jenkins主頁(yè)>新建項(xiàng)目:

2.為項(xiàng)目命名,指定項(xiàng)目類型,然后單擊確定。

配置CI作業(yè)
1.輸入項(xiàng)目描述并指定工作目錄的路徑:

注意:Jenkins假定已經(jīng)鏈接了版本控制系統(tǒng)以從腳本文件夾中提取更改。 如果沒(méi)有,您可以安排將更改作為單獨(dú)的Jenkins作業(yè)從VCS中提取。
2.配置構(gòu)建觸發(fā)器。 例如,您可以按計(jì)劃設(shè)置構(gòu)建作業(yè):

構(gòu)建數(shù)據(jù)庫(kù)包
必需的工具:適用于SQL Server的dbForge Studio或適用于SQL Server的dbForge Schema Compare Pro。
在此階段,您將構(gòu)建數(shù)據(jù)庫(kù)包并從服務(wù)器上的“腳本文件夾”部署它。 我們使用已安裝的dbForge DevOps Automation for SQL Server插件。
1.單擊``添加構(gòu)建步驟''>``構(gòu)建數(shù)據(jù)庫(kù)軟件包''(注意為該步驟定義的插件名稱):

2.在``構(gòu)建''窗口中,提供以下詳細(xì)信息:
子文件夾位置與腳本文件夾有關(guān)。 確保在上一步中設(shè)置的路徑正確。
系統(tǒng)將生成的NuGet軟件包的Package ID。 該ID將是后續(xù)步驟的標(biāo)識(shí)符。
將從源文件夾中部署數(shù)據(jù)庫(kù)的臨時(shí)數(shù)據(jù)庫(kù)服務(wù)器的名稱。
臨時(shí)數(shù)據(jù)庫(kù)名稱將定義選擇用于部署的數(shù)據(jù)庫(kù)。

使用tSQLt測(cè)試數(shù)據(jù)庫(kù)
必備工具:適用于SQL Server的dbForge Studio或適用于SQL Server的dbForge Schema Compare Pro和適用于SQL Server的dbForge單元測(cè)試
單元測(cè)試在構(gòu)建階段驗(yàn)證部署在服務(wù)器上的SQL腳本。 配置過(guò)程:
單擊添加構(gòu)建步驟>使用tSQLt測(cè)試數(shù)據(jù)庫(kù):

2.在配置窗口中,指定在上一階段也設(shè)置的Package ID,服務(wù)器和數(shù)據(jù)庫(kù)名稱:

發(fā)布數(shù)據(jù)庫(kù)包
必要工具:適用于SQL Server的dbForge Studio或適用于SQL Server的dbForge Schema Compare Pro
在此階段,我們打包腳本文件夾并將NuGet包發(fā)布到指定的服務(wù)器上。
1.單擊添加構(gòu)建步驟>發(fā)布數(shù)據(jù)庫(kù)包:

2.在配置窗口中,定義Package ID并指定包的上傳路徑:

運(yùn)行項(xiàng)目
從Jenkins主頁(yè)手動(dòng)運(yùn)行該過(guò)程。 選擇必要的項(xiàng)目,然后單擊其旁邊的圖標(biāo),如下所示:

您可以在控制臺(tái)輸出上查看執(zhí)行結(jié)果。 它提供了上述每個(gè)步驟(單元測(cè)試的結(jié)果或NuGet程序包發(fā)布結(jié)果)的常規(guī)信息和數(shù)據(jù)。
通過(guò)以下方式顯示了從“腳本文件夾”創(chuàng)建數(shù)據(jù)庫(kù)的結(jié)果:

將dbForge DevOps自動(dòng)化插件用于Jenkins是許多專業(yè)人員所偏愛(ài)的方法。 插件步驟包括所有必要的命令,并按正確的順序排列它們。 因此,不需要在作業(yè)配置期間手動(dòng)輸入它們,因?yàn)閐bForge工具會(huì)關(guān)心它們。
但是,還有另一種方法也可用于自動(dòng)化CI流程。 該方法使用Jenkins命令行界面。
使用dbForge工具和命令行在Jenkins上自動(dòng)化數(shù)據(jù)庫(kù)發(fā)布
為了完成這些工作,您將需要dbForge Studio for SQL Server,它具有使用命令行的所有必需功能。 或者,您可以使用單獨(dú)的工具,與本文開(kāi)頭所定義的相同。
選擇方法
要使用命令行自動(dòng)執(zhí)行CI作業(yè),請(qǐng)導(dǎo)航到``添加構(gòu)建步驟'',然后從下拉菜單中選擇``運(yùn)行超時(shí)'':

Jenkins將打開(kāi)以下窗口來(lái)配置步驟:

選擇這種方法還有一個(gè)額外的優(yōu)勢(shì):您可以限制操作時(shí)間。 避免意外的掛起很方便。 此外,您可以在``高級(jí)''選項(xiàng)中檢查已執(zhí)行命令的ExitCode。
通過(guò)命令行自動(dòng)化數(shù)據(jù)庫(kù)發(fā)布
我們將使用一個(gè)簡(jiǎn)單的場(chǎng)景以及名為AdventureWorks2019的測(cè)試示例數(shù)據(jù)庫(kù)。 當(dāng)前,該數(shù)據(jù)庫(kù)位于Git存儲(chǔ)庫(kù)中。 因此,我們需要執(zhí)行以下步驟:
1.將腳本文件夾下載到我們計(jì)算機(jī)的臨時(shí)目錄中。 在我們的例子中,目錄為D:\ Temp \ DevOps \。 在Jenkins中執(zhí)行以下CMD:
git clone https://github.com/svetlanafet/AdventureWorks2019.git D:\Temp\DevOps
2.使用對(duì)象創(chuàng)建AdventureWorks2019測(cè)試數(shù)據(jù)庫(kù)。 對(duì)命令行執(zhí)行以下SQL Server腳本。
dbForge Studio for SQL Server腳本:
cd "C:\Program Files\Devart\dbForge Studio for SQL server"
dbforgesql.com /execute /connection:"%user connection%" /inputfile "D:\Temp\DevOps\Create_AdventureWorks2019.sql"
dbforgesql.com /schemacompare /compfile:"D:\Temp\DevOps\AdventureWorks2019.scomp" /sync
dbForge Schema Compare for SQL Server腳本:
cd "C:\Program Files\Devart\dbForge Schema Compare for SQL Server"
schemacompare.com /execute /connection:"%user connection%" /inputfile "D:\Temp\DevOps\Create_AdventureWorks2019.sql"
schemacompare.com /schemacompare /compfile:"D:\Temp\DevOps\AdventureWorks2019.scomp" /sync
3.現(xiàn)在,我們可以將數(shù)據(jù)部署到數(shù)據(jù)庫(kù)了。 列出的所有dbForge工具都通過(guò)CMD運(yùn)行并參與自動(dòng)化。
注意:首先,我們必須在dbForge Schema Compare for SQL Server中配置(scomp)模板文件。 必須將腳本文件夾與服務(wù)器同步。
生成測(cè)試數(shù)據(jù)
dbForge還提供了在運(yùn)行tSQLt單元測(cè)試之前在Test階段生成數(shù)據(jù)的功能。 當(dāng)用戶需要部署大數(shù)據(jù)量但他們無(wú)法或不會(huì)將所有這些數(shù)據(jù)存儲(chǔ)在驅(qū)動(dòng)器上時(shí),此功能會(huì)派上用場(chǎng)。
在這里,我們需要使用所有設(shè)置和規(guī)則來(lái)配置(.dgen)項(xiàng)目文件,以用于生成測(cè)試數(shù)據(jù)(適用的工具是dbForge Data Generator for SQL Server)。 然后,您應(yīng)該在VCS中找到該文件,以便系統(tǒng)為檢出目錄提供正確的路徑。
對(duì)于dbForge Studio for SQL Server,使用以下命令將測(cè)試數(shù)據(jù)部署到表中:
dbforgesql.com /generate data /project file:"D:\Temp\DevOps\Addressr.dgen"
對(duì)于用于SQL Server的dbForge數(shù)據(jù)生成器,請(qǐng)使用以下命令:
datagenerator.com /generatedata /projectfile:"D:\Temp\DevOps\Addressr.dgen"
無(wú)論您是喜歡為Jenkins使用專用插件還是通過(guò)命令行自動(dòng)執(zhí)行數(shù)據(jù)庫(kù)發(fā)布,都可以為SQL Server應(yīng)用dbForge工具。 它們都可以正確地用于自動(dòng)化目的,并幫助您消除煩人的例程。
京ICP備09015132號(hào)-996 | 違法和不良信息舉報(bào)電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權(quán)所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號(hào)豪柏大廈C2座11層1105室
北京哲想軟件集團(tuán)旗下網(wǎng)站:哲想軟件 | 哲想動(dòng)畫(huà)