iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
DevOps

不想吃土嗎?就利用開源軟體打造CICD Pipeline吧!系列 第 6

Day 6: 工廠始動!我的第一條Jenkins Pipeline!

  • 分享至 

  • xImage
  •  

建立第一條Pipeline

昨天我們已經成功安裝一個新的Jenkins。今天,我們就學習一下如何使用Jenkins,去設計及運行我們想要的整合內容。

建立Jenkins專案

首先登錄到Jenkins中,由於我們的Jenkins是全新的環境,所以應該會看到像下圖中的畫面。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012B9T0x5e9ja.png
先按下Create a job

然後在輸入欄位中輸入你的專案名稱,今次我輸入了ITHome Ironman 2022。然後按下"OK"
https://ithelp.ithome.com.tw/upload/images/20220918/20152012q9xvU5SEzX.png

然後專按已經建立成功!接著會畫面會進入到設定的部份。
https://ithelp.ithome.com.tw/upload/images/20220918/201520127gbYLKLCEv.png

使用Pipeline Script運行Jenkins Pipeline

在Jenkins中,主要有兩種方式去定義Pipeline中的工作流程。第一種方法,是直接在專案中寫入Pipeline script。

Jenkins中有一些範例的Pipeline內容,例如一個簡單的Hello World Pipeline。

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
            }
        }
    }
}

內容解釋

  • pipeline{…} – 整個Pipeline的block,簡單來說就是把所有關於Pipeline的資訊都丟在裡面就是了
  • agent any – 使用哪一個agent去進行建置,因為不同的agent可能有不同的功能,因此有時候需要定義好使哪一組agent去建置專案。此處因為我們定義了隨意使用可用的agent
  • stages{…} – Pipeline中所有相關的步驟都丟在裡面
  • stage('Hello') {…} – Pipeline中的其中一個步驟,可以為此步驟加上一個名稱。範例中就是Hello
  • echo 'Hello World' – 這個步驟中要執行的動作。範例中就是在Console輸出Hello World

如下圖中,把範例輸入到專案中。然後儲存設定。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012RIvp7hj6ep.png

然後回到專案主畫面中,按下Build now的按鈕。專案應該會馬上啟動Pipeline的建置。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012nJCZEA9QBi.png

接著應該會看到Pipeline成功運作!
https://ithelp.ithome.com.tw/upload/images/20220918/20152012Qr5OJ9hGmc.png

使用Jenkinsfile去定義Pipeline的內容

為了方便使整個Jenkins的Pipeline Script可以更好地管理,我們可以使用第二種方式去定義Pipeline的內容,亦即是以Jenkinsfile的方式去管理,然後commit到版本管埋系統中。

首先,在Jenkins專案的設定中,先在Pipeline部份的Definition選擇Pipeline script from SCM,然後在SCM的下拉選單中選Git,再輸入你的Git專案URL。
https://ithelp.ithome.com.tw/upload/images/20220918/201520125xM4L5OU69.png

此時,系統應該會如上圖般提示没有權限取得相關的專案內容。此時需要為Jenkins加入一個Credentials以通過Git專案服務的認證。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012YL3qm55ASP.png
此處我們用最簡單的用戶名稱及密碼作為Credentials,輸入以後相關的權限提示應該就會消失。

接著我們繼續設定我們的Pipeline。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012AGnY8m6C31.png

Branches to build代表使用哪一條分支去進行操作。我們先使用master branch進行後續步驟,所以不用進行修改。

然後Script Path指的是Jenkinsfile的路徑,一般都不用修改,除非你想使用其他Jenkinsfile的路徑。然後儲存設定。

然後我們在Git專案中加入一個新的Jenkinsfile,內容跟前一個方式相同。接著把它commit到專案及上傳到remote的Git專案中。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012ZtYkLk8vcH.png

然後回到Jenkins中,按下Build Now

此時可以發現,成功運行了一次Pipeline的建置流程。
https://ithelp.ithome.com.tw/upload/images/20220918/201520129I2qztP4wM.png

如果查看Pipeline的Console輸出,可以發現Jenkins先從Git服務器中取得源碼,然後找到Jenkinsfile再依其中的內容進行了建置。
https://ithelp.ithome.com.tw/upload/images/20220918/20152012Jir73DTfRB.png

小結

以上就是本日的內容,今天主要是講一下Jenkins Pipeline的建置的基本流程。依據不同的需求,Pipeline中可能需要有多個不同的Stage去進行不同的步驟。日後我們會慢慢介紹更多不同的工具,然後會再對此Pipeline進行修改,使得相關的工具能自動化運作起來。

題外話

Day 6了,終於完成了1/5的鐵人賽路程了。如果各位對後續內容有興趣,歡迎留言或是訂閱支持一下哦!


上一篇
Day 5: 興建我的第一套Jenkins整合工廠!
下一篇
Day 7: 程式碼好不好我說了算!程式碼檢測工具SonarQube
系列文
不想吃土嗎?就利用開源軟體打造CICD Pipeline吧!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言