iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 17
3
DevOps

30 天入門 Ansible 及 Jenkins [2018]系列 第 17

[Day 17] 原始碼管理與建置觸發程序 (上)

  • 分享至 

  • xImage
  •  

原始碼管理與建置觸發程序

Jenkins 作為一個持續整合的工具,與原始碼管理系統的整合尤其重要。在這個章節內,我們會介紹如何在 Jenkins 上透過原始碼管理 (source code management, SCM) 系統,例如 GitHub 來獲得專案的原始碼,並設置建置觸發程序 (build triggers) 來實踐持續整合。

接下來我一樣會使用這個專案來當作範例。我要利用 ansible-lint 這個語法檢查工具來自動檢查我的專案是否都有符合規範。因此,為了讓 Jenkins 可以使用 ansible-lint,我們必須在 Jenkins 運行的環境下先安裝好這個工具。如果是跟著實戰 Ansible 的方式安裝 Jenkins 的話,眼尖的讀者可能發現我在 docker-jenkins/defaults/main.yml 這裡已經先在運行的容器內安裝好 ansible-lint 了。當然,如果你希望運行的是更乾淨或更客製化的環境,可以在這裡任意刪除或增加套件。

建置專案

在 Jenkins 運行環境下安裝好 ansible-lint 後,回到 Jenkins 管理首頁建立一個新的 Free-Style 專案。

原始碼管理

建立完成後,在原始碼管理的欄位選擇 Git,並填入 repository URL:

這邊是使用 HTTPS 連線來存取專案。但如果是有存取限制的專案,例如 private repo,我們會看到類似以下連線失敗的畫面:

我們可以在下面的 Credentials 欄位選擇 Add > Jenkins 後,在 Kind 的欄位選擇 Username with password,並輸入你的 GitHub 帳號密碼:

輸入完成後,選擇剛剛建立的憑證 (credential),就可以發現剛剛的連線失敗警告已經消失了:

另外,如果今天想要透過 SSH 來存取專案,我們應該會遇到狀況如下:

這是因為我們的 Jenkins 還沒與 GitHub 做 SSH 的金鑰配對,所以 GitHub 拒絕 Jenkins 透過 SSH 存取。解決這個方式最簡單的作法就是在 Jenkins 主機下建立 SSH 金鑰,並將公開金鑰 key 加入你的 GitHub 帳戶中。在配對完成後,回到 Jenkins 專案的 Credentials 欄位下並選擇 Add > Jenkins。這次在 Kind 的欄位選擇 SSH Username with private key,並依序填入剛剛 SSH 憑證的資料後點選 Add 離開:

選擇剛剛新建立的憑證,如果沒有意外現在就可以用 SSH 來存取專案囉!

在這裡讀者也可以自由選擇要從哪一個分支 (branch) 來進行建置。如果在 Branches to build 處留白,Jenkins 自動偵測專案下的所有 branches。更多細節可以點選旁邊的藍色小問號查看。


上一篇
[Day 16] 我的第一個 Jenkins Job
下一篇
[Day 18] 原始碼管理與建置觸發程序 (中)
系列文
30 天入門 Ansible 及 Jenkins [2018]30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言