1、創建流水線工程
選擇 Freestyle project
2、配置模板倉庫、憑證
配置倉庫地址
創建憑證,憑證選擇賬號-密碼
(能夠訪問該倉庫的個人或管理員 Gitlab 賬密)
到這里執行構建,便可以克隆倉庫到工作目錄
3、安裝插件
3.1 Rebuilder
方便打包任務直接 Rebuild
3.2 Build with Parameters
方便構建任務配置參數,進行構建
4、子模塊拉取
我喜歡把游戲資源單獨放在一個倉庫中,以子模塊方式依賴
配置 Advanced sub-modules
behaviours
,拉取游戲變體
- clone depth:克隆深度配置 1,減少克隆時間
5、清除工作空間
配置 Clean after checkout
,情況是:不是當前分支的子模塊刪除(分支切換時發現子模塊內容仍然存在,需要刪除)
保險起見,確保每次構建干凈,刪除整個工作空間
6、構建命令
在 Jenkins 構建參數定義一個變量 BuildType
,區分執行不同的命令構建 app 或 hap 包
6.1 錯誤:Invalid value of ‘DEVECO_SDK_HOME’ in the system environment path
Jenkins 配置環境變量 DEVECO_SDK_HOME
,指向的是 DevEco Studio
安裝目錄下的 sdk
Jenkins -> Manager Jenkins -> System
6.2 錯誤:Unsupported modelVersion of Hvigor 5.0.5
使用 where
命令查看所指向的可執行文件目錄
where hvigorw
本機正常工程執行,輸出的是 DevEco Sdutio 安裝目錄下的 ../tools/hvigor/bin/hvigorw.bat
Jenkins 打包工作目錄所在工程執行錯誤,輸出的是系統環境變量配置的其他路徑(這個可能是因為我之前安裝其他版本時配置的 cmd-tools
)
解決:
原因是 Hvigorw 所執行版本不一致,刪除系統環境變量的配置,使用 DevEco Sdutio 安裝目錄下的配置
6.3 Error Message: SDK component missing.
解決:
同樣的,配置上述提到的環境變量 DEVECO_SDK_HOME
,指向 DevEco Studio 安裝目錄下的 sdk
如果仍然不生效,配置 Jenkins 環境變量后重啟 Jenkins 服務
6.4 找不到工程里面本地依賴的 har 包
在 Jenkins 中新增 Windows batch command
配置,在項目克隆下來之后,執行一次 ohpm install **.har
安裝本地依賴
示例:
ohpm install entry/test.har (entry 是項目相對路徑)
Tip:如果是在 DevEco 打包時報錯找不到模塊
注意:這個 plugin 第三方模塊是 npm 包,本地依賴是 npm 包轉 har 包
npm install plugin@[版本號]
6.5 找不到 ohpm
配置環境變量,執行DevEco studio 安裝目錄下的 ./tools/ohpm/bin
7、重置工作空間
- 關閉 Jenkins 服務
- 在 Jenkins 安裝目錄修改 jenkins.xml,指定
JENKINS_HOME
為新目錄 - 復制原先 Jenkins 工作目錄所有內容到新目錄(否則需要重新配置 Jenkins)
- 重啟 Jenkins 服務
重啟 Jenkins 服務
按 Win + R,輸入 services.msc,然后按回車。在服務列表中,找到名為 Jenkins 的服務右鍵重啟
查看是否已修改成功
Jenkins -> Manager Jenkins -> System
8、產物歸檔
Jenkins 配置 Archive the artifacts
,只需要配置項目的相對路徑
示例:
entry/build/default/outputs/default/entry-default-signed.hap,build/outputs/default/HarmonyH5Mb2-default-signed.app
當然有時候 hap、app 產物名稱可能跟對項目不同而變化,你可以通過編寫鴻蒙插件對產物進行重命名
(鴻蒙插件類似 Android 的 gradle 插件,參與打包構建過程)
當然,產物支持通配符配置
entry/build/default/outputs/default/.hap,build/outputs/default/.app
9、進程占用解鎖
特別是 window 環境下,并發構建容易觸發進程占用工作目錄下的某個文件,導致清空工作目錄時無法刪除文件,觸發報錯不能正常打包
這時候你可能需要在打包前或打包結束后對工作目錄或頻繁出現占用的文件進行解鎖,你可以使用解鎖工具 Lockhunter,支持命令行調用
其他
輸出環境變量
echo %JENKINS_HOME%
查看命令路徑
where hdc
Jenkins 小坑
有時候你想把一段代碼放到一個Execute Windows batch command
中執行,你可能會遇到前幾行代碼執行了,在某行代碼執行完之后中斷了,后面代碼未執行(猜想:可能是那樣代碼執行完返回了退出)
解決:
Execute Windows batch command 支持配置多個,你可以把中斷執行后的代碼配置到一個新建的 Execute Windows batch command