Jenkins x Bitbucket x Angular x WildFly

上次有提到透過Container檔案共用,可以讓Jenkins Build好的檔案放到部署的資料夾
回顧先前提到的系統架構圖
現在,我們要先以Jenkins為中心
從Bitbucket取得程式碼,Build Angular的程式碼,部署到WildFly上
雖然說是部署,但這Case其實就是複製到某資料夾而已
在說明開始前有以下假設:
  1. 本來的 testAngular 這邊改成 angular-dist
    
  2. Jenkins已經安裝好預設的plugin 跟 Nodejs Plugin
    Note: karma plugin 不在本次的說明範圍
大致有三大步驟:
I. 安裝Nodejs的運行版本
II. 設定到bitbucket的ssh key
III. Jenkins 組態設定Build and deploy

I. 安裝Nodejs的運行版本

  1. 到Jenkins首頁,點選管理Jenkins
  2. 點選 Global Tool Configuration
  3. 往下滑到NodeJS區塊,點選NodeJS安裝
  4. 填寫Nodejs相關資訊
    我們以 nodejs 8.9.3為例
    名稱方便辨識即可(e.g., nodeJS 8.9.3),Version就選擇 8.9.3
    由於是Angular開發,我們要安裝 @angular/cli,也讓npm版本是最新的(5.5以前有bug)

II. 設定到Bitbucket的ssh key

  1. 假設我們已經透過 Keygen 產生一組 id_rsaid_rsa.pub
    並且把他放到 jenkin容器下的 /var/jenkins_home/.ssh/ 目錄
    該目錄應該會長這樣 (known_hosts可以先忽略)
    Jenkins的預設設定,也是抓id_rsa與id_rsa.pub這兩個名稱,若不需要不建議更改
  2. 接著,到我們的Bitbucket專案的設定裡面選取Access keys → Add Key
  3. Label命名好之後,將id_rsa.pub貼在 Key的欄位並新增

III. Jenkins 組態設定Build and deploy

  1. 到jenkins首頁點選新增作業
  2. 命名並選取建置Free-Style專案
  3. 在原始碼管理把我們要建置的專案URL git@bitbucket.org:OOOOO/XXXXX.git
    填在 Repository URL並新增 Credential Key
  4. Credentials 設定
    Kind我們選擇 SSH Username with private key
    Username填寫好後
    Private Key我們選擇From the Jenkins master ~/.ssh
    密碼如果沒有沒設就不用,其他也暫時可以不用設定
    由於未來要自動化考量,傾向把那組Key放在 /var/jenkins_home/.ssh/ 裡
    這樣之後Bitbucket才不需要一直新增新的Access Key
  5. 建置環境與建置設定
    建置環境選取Provide Node & npm bin/ folder to PATH
    版本就選取NodeJS 8.9.3
    建置選擇 shell
    在下方輸入
    npm install 
    ng build
    cp dist/* /angular-dist/ #看你們佈署在哪個目錄下
    
  6. 如果建置成功,我們就可以看到首頁了~

留言