創建Jenkins構建任務以自動化Web部署

建立和部署應用程式可能是一項困難的任務。為什麼不使用 Jenkins 建置工作來自動化整個過程呢?您可以專注於建立,而 Jenkins 負責程式碼部署。

在本教程中,您將學習如何使用 Jenkins 自動化程式碼部署,以節省時間,讓您可以同時專注於其他任務。

準備好了嗎?開始吧!

先決條件

本教程包含實際示範。如果您想跟隨操作,請確保您擁有以下內容:

雖然下面的截圖顯示的存儲庫與上面的鏈接稍有不同,但一旦派生,您將使用不同的存儲庫URL。

創建Jenkins構建作業

Jenkins是一個開源的自動化服務器,有助於自動化軟件開發生命周期。該生命周期包括構建、測試和部署,從而實現持續集成和持續交付。

在這個演示中,您將學習如何創建一個Jenkins構建作業。構建作業通常是自動運行用於構建/打包軟件的任務的配置。

  1. 打開您喜歡的瀏覽器,導航到http://localhost:8080/,並登錄到您的Jenkins儀表板。端口8080是訪問Jenkins儀表板的默認端口。

2. 在Jenkins的儀表板上,點擊左側面板的新建項目按鈕,初始化創建構建作業。這樣做會將瀏覽器重定向到新的作業頁面。

Creating a new Jenkins Job

3. 接下來,在下面的輸入框中輸入您喜歡的構建作業的項目名稱。例如,本示例中的項目名稱是webDeploy

選擇自由風格專案選項以啟用創建工作、腳本後建置動作和配置專案建置觸發器,然後點擊確定。您將被重新導向到下一步中的工作配置頁面。

Creating a Jenkins project

4. 點擊一般標籤,並勾選GitHub 專案方塊以連結源代碼管理器,這樣 Jenkins 將知道從哪裡拉取您的代碼。此演示使用 GitHub 作為在之前分叉的示例專案的源代碼管理器。將您的 GitHub 存儲庫 URL 從您的 GitHub 帳戶複製到下面的專案 URL欄位中。

Linking Jenkins to a source code manager

5. 最後,點擊源代碼管理標籤,然後選擇Git,這是您的源代碼管理器。

將此 GitHub 存儲庫 URL (https://github.com/Claradev32/webDeploy.git)複製並粘貼到輸入欄位中。點擊保存按鈕以保存當前配置。

Linking Jenkins to Source Code Manager (Git)

為 Jenkins 專案創建認證

也許您更希望保持存儲庫的私有性,這對於客戶專案很常見。如果是這樣,您需要創建認證以授權 Jenkins 從 GitHub 克隆您的專案。

要為 Jenkins 專案創建認證,您必須首先在您的 GitHub 帳戶中生成並添加 SSH 金鑰:

1. 開啟Ubuntu終端機,執行以下命令以生成一個以ed25519為金鑰類型的SSH金鑰。將[email protected]替換為您的GitHub郵件地址,以將其作為評論添加到您生成的SSH金鑰中。

ssh-keygen -t ed25519 -C "[email protected]"

2. 保存您的公共SSH金鑰,請使用以下命令:

  • 指定一個保存位置並按下Enter。如果不指定,該命令將將SSH金鑰保存在默認位置,如下所示。
  • 輸入一個安全的密碼短語以供SSH金鑰使用,按下Enter確認密碼短語,您將看到公共SSH金鑰的輸出。
  • 請記下您生成的SSH金鑰的位置,您將在以下步驟中將其添加到GitHub帳戶中。
Adding a Passphrase to the SSH key

3. 在網頁瀏覽器中登錄GitHub,並轉到帳戶設置頁面。

4. 點擊左側面板上的SSH和GPG金鑰鏈接,然後點擊新的SSH金鑰,如下所示,以配置您的新SSH金鑰。

Creating a Github SSH key

5. 最後,輸入您喜歡的SSH金鑰標題。該標題僅用於內部文檔目的。將之前保存的SSH金鑰從文件中粘貼到金鑰輸入框中,然後點擊添加SSH金鑰保存金鑰。

請記住,這是您的公共金鑰而不是私有金鑰!

Saving New SSH Key

將SSH私鑰添加到Jenkins憑據中。

既然您已經建立了用作Jenkins憑證的SSH金鑰對,您還必須將SSH私鑰添加到Jenkins憑證中,以授權Jenkins訪問您的GitHub存儲庫。但首先,請記下您的GitHub存儲庫的SSH URL。

1. 轉到您的GitHub存儲庫頁面,點擊代碼 → SSH,然後點擊下面顯示的複製圖標將SSH URL複製到剪貼板上。

Noting Down GitHub SSH URL

2. 接下來,轉到您的Jenkins儀表板,然後點擊管理Jenkins以訪問您項目的設置頁面。

Accessing Jenkins Settings

3. 向下滾動,然後在安全部分下點擊管理憑證選項,以查看您的Jenkins憑證列表。

Accessing Jenkins Credentials

4. 在憑證頁面上,點擊Jenkins,以訪問“系統”頁面,您可以在該頁面上添加新的憑證。

Accessing System Page to Add Credentials

5. 現在,在系統頁面上,將鼠標懸停在全局憑證(不受限制)選項上,以顯示下拉菜單,然後點擊向下箭頭圖標。

從下拉菜單中選擇添加憑證。該頁面將重定向到一個表單,在該表單中,您將配置下一步中顯示的新憑證。

System Page

6. 在第一個輸入字段中選擇帶有私鑰的SSH用戶名,並在用戶名字段中輸入項目用戶名。在此示例中,用戶名為CI/CD

在這種情況下,用戶名純粹是內部文檔,不用於身份驗證。

Setting a Username for Jenkins Global Credentials

7. 執行下面的命令來查看您的SSH私鑰,將位置更改為您鑰匙保存的位置,如下所示(下面的鑰匙位於主目錄中)。請記下您的SSH私鑰,因為您將在下一步將其添加到Jenkins憑據中。

cat ~/.ssh/id_ed25519
Viewing Secret Key

8. 一旦您記下了您的SSH私鑰,返回到全局憑據(無限制)頁面。

輸入您在“為Jenkins項目創建憑據”部分(第二步)設置的密碼到密碼輸入框中,然後點擊確定。這樣做可以授權Jenkins訪問您的GitHub存儲庫。

如果在創建SSH密鑰時沒有設置密碼,點擊直接輸入,然後點擊添加按鈕。將您的SSH私鑰輸入到鑰匙輸入框中,如下所示,然後按確定按鈕保存憑據。

Adding GitHub SSH key to Jenkins Credentials

8. 返回您的Jenkins儀表板,將滑鼠懸停在您的項目上,然後點擊向下箭頭圖標,然後選擇配置,如下圖所示。頁面將重定向到您項目的配置頁面。

Configuring Jenkins Project

10. 最後,在下拉選單中選擇憑證使用者名稱(從「將秘密金鑰添加到 Jenkins 憑證」部分的第六個步驟)。Jenkins 默認應用 CID 原則 以確保您的項目持續集成和部署。

Connecting Jenkins to GitHub

配置構建觸發器和後置構建操作

您已成功創建了構建任務的框架。但如果您經常對項目進行更改,每次都需要手動重新部署嗎?為什麼不設置構建觸發器呢?構建觸發器可以自動重新部署您在 GitHub 推送的項目更改。

1. 在項目的配置頁面上,點擊 構建觸發器標籤,並勾選 GitHub hook trigger for GITScm polling 選項。此選項可自動重新部署您的項目更改。

Configuring build triggers

2. 點擊 構建 標籤,點擊 新增構建步驟,並選擇 執行 shell 以創建一個腳本,該腳本將在 Jenkins 下載項目的新版本時運行。

Creating a Build Script

您創建的 shell 腳本取決於您的開發環境。如果您使用的是 Windows,Windows 將執行該腳本;其他操作系統也是如此。

3. 輸入以下 shell 命令,然後點擊 保存 以保存構建腳本。保存更改後,頁面將重定向回項目的儀表板。

下面的命令从源代码远程位置(origin master)拉取您的代码,并使用NodeJS NPM install (npm install)安装运行项目所需的必要依赖项。这些命令在您发起推送请求时执行。

这个特定的项目使用NodeJS作为依赖项,但您的项目可能不需要。

git pull origin master
npm install
Adding Commands to the Automated Build Script

4. 现在,在您的项目仪表盘上,点击立即构建来运行构建。

Running the Build

5. 向下滚动到构建历史记录中,查看构建的状态。如果构建成功,您将看到类似下面截图的输出。

Viewing Successful Build

如果构建失败,您将看到下面显示的输出。

Failed build history

6. 接下来,向上滚动并点击配置来配置项目的构建后操作。

Configuring Project’s Post Build Actions

7. 点击构建后操作选项卡,然后点击添加构建后操作并选择Git发布者。页面会展开Git发布者设置部分(下一步)。

Accessing Git Publisher Post-Build Action

8. 最后,启用仅在构建成功时推送选项,并点击保存按钮保存更改。启用此选项告诉Jenkins仅在构建成功时部署代码。

Adding Post-Build Actions

结论

在這個教程中,您已經學會了將Jenkins連接到您的源代碼管理系統的過程。您還創建了一個構建腳本,當Jenkins下載您的代碼的新版本時,它會自動運行,並設置了構建觸發器來自動部署網頁。

現在,為什麼不通過Jenkins構建作業自動化應用程式部署,從而節省時間呢?

Source:
https://adamtheautomator.com/jenkins-build-job/