做者:CODING - 朱增輝html
make 工具很是強大,配合 makefile 文件能夠實現軟件的自動化構建,可是執行 make 命令依然須要經歷手動輸入執行、等待編譯完成、將目標文件轉移到合適位置等過程,咱們真正關心的是最終的輸出,卻在這些中間過程上浪費了不少時間。利用 CODING 持續集成功能能夠實現自動觸發構建,構建全程自動化,無須分心看護,節省時間。git
本文經過一個 C 語言 + Makefile Demo 項目講解如何使用 CODING 持續集成功能建立構建計劃,自動觸發構建,以及如何將生成的目標文件發佈到 CODING generic 製品庫。正則表達式
本文涉及到如下工具,請確認已存在,或者根據連接的文檔進行安裝。shell
另外,您還需準備一個 CODING 項目。編輯器
我已經準備了一份簡單的示例代碼,使用 make 工具構建 Hello-world 程序。ide
// hello.c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; }
您能夠經過下面的命令克隆到本地。工具
git clone https://e.coding.net/coding-public/demo-c-make.git
倉庫中還包含了一個 makefile 文件,定義了簡單的規則來完成軟件構建。ui
all: hello hello: hello.o gcc -o hello hello.o hello.o: hello.c gcc -c hello.c clean: rm -rf hello.o hello
您能夠在本地執行 make 命令以驗證構建正常。url
下面咱們正式開始經過一個 Demo 演示 CODING 平臺持續集成功能的使用。.net
爲了方便隨時使用構建出來的目標文件,咱們將構建物存儲到 CODING 平臺製品庫,所以須要先建立合適的製品倉庫,這裏建立 generic 倉庫比較合適。
從左側導航欄打開製品庫
。
單擊新建倉庫,選擇 generic 類型,按照提示指定倉庫名稱,這裏倉庫名取爲 generic。
從左側導航欄打開持續集成 --> 構建計劃
頁面,點擊新建構建計劃配置
建立並配置新的構建計劃。在彈出的頁面中,輸入構建計劃名稱,選擇代碼倉庫,配置來源
指的的該構建計劃的構建腳本存放位置,對於簡單的、變更不頻繁的腳本可使用靜態配置的選項,不然更推薦使用代碼倉庫中的腳本,這樣更加靈活,方便管理
點擊使用模板,可根據本身須要選擇合適模板,這裏選擇 簡易模板
。
保存構建計劃後,系統會自動將構建模板對應的 Jenkinsfile 推送到倉庫,默認爲 master 分支。
構建腳本定義構建過程的具體步驟,是構建計劃的核心部分。CODING 平臺提供了圖形化編輯器方便您快速編寫構建腳本。
CODING 持續集成底層基於開源 CI/CD 軟件領導者 Jenkins 實現,徹底兼容 Jenkins pipeline 構建腳本語法,根據 Jenkins 官方提供的腳本編寫指南,能夠實現更復雜的構建任務,CODING 也提供了文本編輯器方便您在線編輯。
代碼倉庫中已包含一個簡單的構建腳本(Jenkisnfile),您能夠按照本身的想法參考編寫。
// Jenkinsfile pipeline { agent any stages { stage('檢出') { steps { checkout([ $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[ url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID ]]]) } } stage('構建') { steps { echo '構建中...' sh 'make' echo '構建完成.' } } stage('發佈') { steps { echo '發佈中...' codingArtifactsGeneric( files: 'hello', repoName: "${env.GENERIC_REPO_NAME}", version: "${env.GIT_COMMIT}", ) echo '發佈完成' } } } } }
構建腳本中的大部份內容都比較容易理解,稍顯陌生的是 codingArtifactsGeneric 步驟,這是 CODING 官方提供的插件,方便上傳到 CODING generic 製品庫。該插件經過環境變量 GENERIC_REPO_NAME 獲取倉庫名,所以須要配置構建計劃設置該變量值。
CODING 持續功能支持多種觸發方式包括代碼源觸發、定時觸發、API 觸發及手動觸發,這幾種觸發方式能夠同時配置互不衝突,其中代碼源觸發又可配置爲推送到指定分支或標籤觸發,觸發方式多樣,可知足絕大部分場景須要。
如前言中所說,咱們但願把更多的精力放在源代碼上,儘可能減小構建所帶來的干擾,所以這裏必不可少的是配置經過代碼源觸發,經過配置以下正則表達式,能夠在推送代碼到匹配的分支名時自動觸發構建。
^refs/(heads/(release|release-.*|build-.*|feat-.*|fix-.*|test-.*|mr/.*))
執行構建最簡單的方式是手動觸發構建,選中想要構建的構建計劃,單擊當即構建會彈出配置窗口,在這裏能夠配置這次構建使用的參數,單擊肯定便可開始構建。
按照步驟四的配置,咱們的構建計劃也支持推送的匹配分支觸發構建,您能夠執行以下命令建立新分支並推送到遠端倉庫,便可觸發構建。
git checkout -b build-ci-test git push origin HEAD
觸發後,構建會自動執行,您能夠繼續作其餘事情。
步驟三中定義的構建腳本會將構建出的目標文件發佈到 CODING 製品庫,若是咱們想要在本地使用也是很方便下載的。在製品倉庫中單擊文件名便可看到指引頁,裏面給出了對文件不一樣操做的命令。
本文經過一個 C 語言 + makefile 的 Demo 項目講解了 CODING 持續集成、製品庫的簡單使用。藉由 CODING 平臺的這些功能,咱們像是僱了一個永不會累的助手,承擔了耗時的構建工做,從而節省了時間,提升了效率。