① 搭建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 文档的编译和发布流程,提高科研文档协作效率。