① 搭建Gitlab CI
本文記錄了搭建GitLab CI實現演算法底庫自動化編譯與離線測試的過程,涉及持續集成、持續交付、以及使用GitLab Runner與Docker進行部署的實踐。
GitLab CI/CD是一種集成在GitLab中的工具,通過自動化流程輔助軟體開發。其核心在於將小塊代碼推送至託管代碼庫,同時自動運行一系列腳本以構建、測試和驗證代碼變動,確保代碼質量。
持續交付與部署是CI的進一步延伸,旨在每次推送代碼至默認分支時,自動部署至生產環境,提升效率與穩定性。
.gitlab-ci.yml文件是配置腳本執行的中心,置於倉庫根目錄,由GitLab Runner讀取並執行。
為加速部署流程,採用Docker化GitLab Runner與Executor。GitLab Runner在Docker容器中運行,負責維護特定倉庫的基礎分支,並在收到作業任務時,根據配置的image啟動容器,執行CI命令。
安裝GitLab Runner是搭建CI流程的關鍵步驟。可直接安裝軟體或使用官方Docker鏡像,後者更便於自動化部署。
老版本的GitLab Runner(<=14.xx)存在控制Job數量的問題,可能導致多個Job同時運行在同一個Runner的同一Executor中。此問題於GitLab-Runner開發組於2022年初修復。
啟動GitLab Runner後,需將其注冊至對應GitLab Repository,完成互動式注冊過程。
配置文件/etc/gitlab-runner/config.toml是自定義Runner配置的關鍵,完成修改後,Runner即配置完成。
GitLab Yaml Config的配置細節在參考資料中詳細說明,涉及作業流程、環境變數、以及特定任務的執行邏輯。
② 基於gitlab+k8s實現CI/CD
項目簡介:採用Container、Gitlab、Gitlab Runner(k8s)、SonarQube、Harbor、Jmeter、Maven、Java構建CI/CD管道,實現自動化編譯打包、單元測試、源碼掃描、上傳製品、Docker容器部署與自動化測試,顯著提升開發效率、軟體質量和安全性。
CI/CD流程:從代碼提交開始,自動啟動流水線進行編譯、測試、代碼質量檢查、容器化部署,減少手動操作,加速迭代與部署。
鏡像構建:在container環境下,使用nerdctl+buildkitd方案構建鏡像,具體步驟參考相關文檔。
Runner鏡像:構建gitlab-runner-agent鏡像,實現鏡像構建和k8s資源操作,dockerfile內容需詳細配置。
部署與優化:部署gitlab-runner,根據實際情況優化runner配置,確保高效運行。
流水線構建:構建maven、sonar-scanner、jmeter鏡像,實現自動化構建。
模板庫更新:補充gitlab項目中的模板庫內容,提高代碼復用性。
倉庫地址:項目代碼可訪問gitee.com/cuiliang0302/...或github.com/cuiliang0302...
許可權配置:在gitlab項目中設置許可權,確保安全可控。
密鑰配置:新建SONAR_QUBE_TOEKN、HARBOR_PASSWORD等變數,用於流水線任務,保護敏感信息。
郵件配置:設置郵件通知,及時獲取任務執行情況。
流水線配置:在根目錄創建.gitlab-ci.yml文件,定義流水線步驟,實現自動化流程。
結果驗證:查看pod信息,驗證部署效果,與以往相比,全程使用k8s runner,效率提升。
更多信息與關註:公眾號《崔亮的博客》持續更新,更多運維開發文章歡迎訪問cuiliangblog.cn。
③ 使用 Github Actions 自動化編譯、發布 LaTeX 文檔
Github Actions 是 Github 提供的一種持續集成工具,能夠加速軟體開發過程中的編譯、部署和發布。它特別適用於多人協作編輯 LaTeX 文檔的科研項目。藉助 Github Actions,團隊可以更高效地協作,自動化文檔編譯和發布流程。
配置 Github Actions 非常簡便,僅需編寫一個配置文件即可。我已經准備了一個功能強大的配置文件示例,供參考。此配置文件包含兩個核心環節:「Latex 編譯」和「PDF 發布」。根據不同的需求和安全考量,用戶可以選擇不同的「PDF 發布」方式。
配置文件包含兩種主要的發布方式:一種是在 Github 倉庫內部查看,僅限具有可讀許可權的用戶訪問;另一種是公開鏈接,任何用戶均可訪問,但默認情況下被禁用。如需預覽 PDF 文件,需在倉庫的「Settings-Pages」中開啟 Github Pages 功能。
為確保發布的版本更有意義,配置文件設計了觸發機制:僅當使用 git 提交 tag 時,才會觸發發布 Release 的作業。推薦使用遵循 v* 格式的 tag 命名,如 v1.0,v2.1.3-basic。進行 tag 提交時,請參照相應的命令執行。
示例配置文件中默認的 LaTeX 文件名為 main.tex,但用戶可根據實際需要進行替換,注意相應地修改 PDF 文件名。
最後,請確保將配置文件中的郵箱地址和名字替換為您的個人信息。遵循以上步驟,您將能夠利用 Github Actions 自動化 LaTeX 文檔的編譯和發布流程,提高科研文檔協作效率。