CI/CD 環境建置筆記 - 前言<目的>

現有架構

版本控制

  1. Github
  2. Openshift
    Openshift 是實際線上服務所在,也可以稱作是我的產品(Product),
    Github 則是單純的負責版本控制。

    開發流程

    作為獨立開發的專案,這個網站只是我很單純的自我介紹、練習(KATA)、學習與分享的集散地。
    原本的開發流程很單純,如上圖。完成的CODE同步到 GITHUB 後也同步上 Openshift ,
    這樣的流程雖然簡單,但是每次都要人工執行,因為其執行順序,其實都隱含著風險,
    例如:上錯版本或是產品未進版控等等…,
    而當進一步想要執行建置、編譯 、套件管理、測試、分析與產生報表時,
    產品與源碼將會產生差異(ex:產品會包含壓縮的檔案而源碼則是未壓縮的檔案)

缺點:

  1. 在這樣的架構上容易不小心發佈還在開發中的功能。
  2. Prod的來源就是程式碼,無法確保與版控一致,如此就喪失版控的用意。
  3. 難以擴展其他功能,如:建置、編譯 、套件管理、測試、分析與產生報表

目標:


如圖所示,
第一步 Jenkins要將原始碼自Github pull下來
第二到第N步 Jenkins要執行建置、測試、coding style的檢查、壓縮…等等。
最後一步 Jenkins 將會將程式碼發佈到Openshift 上面。
中間的步驟先跳過,之後再一一補上。
所以第一目標很簡單,
從Github Pull再Push到Openshift。

Please enable JavaScript to view the LikeCoin.