资讯详情

资讯详情

建站行业动态 · 设计趋势 · 数字化升级干货

JoliCi 自定义构建:用 .jolici 目录打造专属本地 CI 测试环境的完整指南

JoliCi 自定义构建:用 .jolici 目录打造专属本地 CI 测试环境的完整指南 JoliCi 自定义构建用 .jolici 目录打造专属本地 CI 测试环境的完整指南【免费下载链接】JoliCi:white_check_mark: JoliCi - Run your TravisCi builds locally项目地址: https://gitcode.com/gh_mirrors/jo/JoliCiJoliCi 是一款基于 PHP 与 Docker 的开源持续集成CI客户端它的核心价值是让你把 Travis CI 的构建流程搬到本地运行。而其中最具灵活性的能力就是通过.jolici目录实现 JoliCi 自定义构建——你完全可以用自己编写的 Dockerfile 打造专属的本地 CI 测试环境摆脱平台限制让每一次提交在本地就能得到与云端一致的验证。什么是 JoliCi在本地运行的持续集成客户端简单来说JoliCi 就是一个本地版 CI 平台。它会自动识别你的项目配置创建对应的 Docker 镜像与环境然后依次执行你的测试命令并把结果直接输出在终端里。整个过程完全在本地完成不依赖任何云端服务非常适合在推送代码之前快速验证。JoliCi 支持两种构建策略Build StrategyTravisCi 策略解析项目根目录的.travis.yml自动生成构建环境适合已有 Travis 配置的项目。JoliCi 策略读取项目中的.jolici目录让你完全自定义测试环境是自由度最高的方案。本文的主角就是第二种——JoliCi 自定义构建。如果你想了解 Travis 策略的细节可以参考官方文档 docs/strategies/TravisCiStrategy.md。为什么选择 .jolici 自定义构建.travis.yml方案虽然方便但语言和版本的支持范围有限。而.jolici目录方案的核心思想是每个测试环境就是一个独立的 Docker 构建你可以随意组合基础镜像、系统依赖、运行时版本甚至是服务端配置。✅ 完全自由任何能在 Docker 里跑的东西都能成为你的测试环境✅ 不污染项目构建过程在临时目录进行无需修改你的项目文件✅ 复用 Docker 缓存多次构建速度飞快✅ 每个子目录就是一个独立 Job天然支持多环境并行测试官方对这一策略的描述见 docs/strategies/JoliCiStrategy.md其核心实现位于源码 src/Joli/JoliCi/BuildStrategy/JoliCiBuildStrategy.php 中。快速开始安装 JoliCi 的两步走在动手创建.jolici目录之前你需要先安装 JoliCi。安装方式非常简单详见官方安装文档 docs/installation.md。方式一Composer 全局安装推荐composer global require jolicode/jolici:*方式二下载 phar 包curl https://github.com/jolicode/JoliCi/releases/download/v0.3.1/jolici.phar -o /usr/local/bin/jolici chmod x /usr/local/bin/jolici安装完成后在项目目录执行php jolici.phar run首次运行会拉取基础镜像并构建环境之后借助 Docker 缓存速度会明显提升。认识 .jolici 目录结构一个目录就是一个测试任务要启用 JoliCi 自定义构建你的项目根目录必须存在一个.jolici文件夹。它的规则只有两条非常好记.jolici下的每一个子目录代表一个独立的测试任务Job每个子目录内必须包含一个Dockerfile它定义了该环境的构建方式一个典型的目录结构长这样your-project/ ├── .jolici/ │ ├── php74/ │ │ └── Dockerfile │ └── node16/ │ └── Dockerfile ├── src/ └── tests/在源码层面supportProject()方法会检查.jolici目录是否存在getJobs()方法则会遍历其下每个子目录并生成对应的 Job逻辑清晰直观。编写 Dockerfile打造专属测试环境的关键一步.jolici策略中测试命令由 Dockerfile 中的CMD或ENTRYPOINT决定。也就是说你写环境的同时也顺便定义了要执行的测试命令。举个例子为 PHP 项目创建一个php74测试任务FROM php:7.4-cli # 安装项目需要的扩展 RUN docker-php-ext-install pdo_mysql # 复制项目依赖 RUN curl -sS https://getcomposer.org/installer | php -- --install-dir/usr/local/bin --filenamecomposer # 测试命令 CMD [composer, test]这样 JoliCi 在构建完镜像后就会自动执行composer test。运行构建的命令非常简单php jolici.phar run如果想看到完整的构建过程输出类似 Travis 的日志加上-v参数即可php jolici.phar run -v所有run命令的详细选项说明可以在 docs/command/run.md 中查看。高级技巧覆盖项目配置文件与引入源码掌握了基础用法后这两个技巧能让你的自定义构建更加得心应手。️ 技巧一按环境覆盖配置文件你可能希望不同测试环境使用不同的配置文件比如数据库连接参数。JoliCi 的做法是构建前会把 Job 目录下的所有文件复制到项目根目录覆盖同名文件。也就是说你可以在.jolici/php74/下放一个config.yml构建时它会自动替换项目根目录的config.yml实现一套代码多套配置的效果。 技巧二把项目源码放进测试环境由于上述覆盖机制构建时 Dockerfile 已经位于项目根目录。要让源码进入镜像只需在 Dockerfile 中加入ADD . /project构建完成后你的全部项目代码就会出现在环境中的/project路径下测试命令可以直接访问。清理测试残留保持磁盘整洁的 clean 命令频繁构建会积累大量 Docker 镜像、容器和临时构建目录。JoliCi 内置了清理命令防止磁盘被撑爆php jolici.phar clean默认会清理当前项目除最近一次外的所有构建产物。常用参数包括参数作用-k NUMBER保留最近 N 个版本再清理--only-containers只清理容器--only-images只清理镜像--force强制删除镜像完整参数清单见 docs/command/clean.md。总结用 .jolici 打造你的专属本地 CI通过本文你已经掌握了 JoliCi 自定义构建的完整链路安装 JoliCi → 创建.jolici目录 → 为每个任务编写 Dockerfile → 用run命令执行测试 → 用clean命令维护磁盘空间。相比传统 CI 配置.jolici方案把环境即代码的理念贯彻到了极致——每个测试环境都是一个可复现、可版本化的 Dockerfile。无论你是想模拟多版本 PHP 环境还是需要特定的系统依赖都能通过这个简单的目录结构轻松实现。现在就去你的项目里创建第一个.jolici目录吧体验一下在本地畅快运行 CI 测试的感觉【免费下载链接】JoliCi:white_check_mark: JoliCi - Run your TravisCi builds locally项目地址: https://gitcode.com/gh_mirrors/jo/JoliCi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关资讯