尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Sismo多分支测试指南:一个项目如何同时盯住master与feature分支

Sismo多分支测试指南:一个项目如何同时盯住master与feature分支 Sismo多分支测试指南一个项目如何同时盯住master与feature分支【免费下载链接】SismoYour Continuous Testing Server项目地址: https://gitcode.com/gh_mirrors/si/Sismo如果你正被测试跑不过就上线的恐惧支配那么 Sismo 这款用 PHP 编写的持续测试服务器Continuous Testing Server值得你花三分钟了解。它不像 Jenkins 那样庞大复杂只做一件事拉取你的代码、运行测试、发送通知。而今天这篇 Sismo 多分支测试指南要解决一个非常实际的问题——如何让同一个项目同时盯住 master 与 feature 分支让每个分支的测试结果都尽在掌握。为什么你需要同时测试多个分支日常开发中master 分支代表稳定版本feature 分支承载新功能。很多团队只在合并前手动跑一次测试结果要么忘跑、要么跑错分支。更常见的情况是你在本地 feature 分支上改了代码推上去才发现破坏了 master 上的某个模块。Sismo 的解法很优雅把每个分支当成一个独立项目来监控让持续测试真正覆盖到你关心的每一条分支。Sismo 是什么一个极简的持续测试服务器Sismo 由 Symfony 之父 Fabien Potencier 开发核心设计理念是本地优先。它最适合作为本地post-commit钩子运行每次提交后立刻触发测试在你把代码推送到远程仓库之前就给出即时反馈与你的 CI 服务器形成完美互补。它不挑语言和框架只需提供一个测试命令测试失败时返回非零退出码即可。安装也极其简单——单个 PHP 文件即可运行 CLI 工具和 Web 界面。多分支测试的核心配置方法Sismo 的所有项目配置都集中在~/.sismo/config.php文件中返回一个项目数组即可。多分支配置只需三步。第一步让分支名称独一无二Sismo 通过项目名称区分不同的构建任务。要跟踪多个分支关键是给每个分支起一个独一无二且容易识别的名称比如带上分支名后缀$projects[] new Sismo\GithubProject(Twig (master branch), /Users/fabien/Twig); $projects[] new Sismo\GithubProject(Twig (feat-awesome branch), /Users/fabien/Twigfeat-awesome);第二步用repositorybranch语法绑定分支Sismo 支持在仓库地址后用直接指定分支这是多分支测试的灵魂语法。setRepository()方法定义于 src/Sismo/Project.php会自动解析后面的内容并设置为项目分支$projects[] new Sismo\GithubProject(Twig (master branch), /Users/fabien/Twig); $projects[] new Sismo\GithubProject(Twig (feat-awesome branch), /Users/fabien/Twigfeat-awesome);如果你的仓库不在 GitHub 上也可以用通用的Sismo\Project类手动配置分支$feat new Sismo\Project(MyApp (feature/login)); $feat-setRepository(/path/to/myapp.gitfeature/login); $feat-setCommand(composer install phpunit); $projects[] $feat;第三步复用同一个仓库克隆不用担心资源浪费——Sismo 对共享同一仓库 URL 的项目复用同一个 git 克隆。构建时底层 Builder见 src/Sismo/Builder.php会先fetch origin再切换到对应的origin/分支进行测试所以两个分支共用一份代码副本既省磁盘又快。如何快速构建全部分支⚡配置完成后一条命令即可构建所有项目包括所有分支php sismo.php build --verbose也可以只构建某个分支对应的项目php sismo.php build myapp-feature-login想查看某个分支最近一次构建的完整输出使用output命令php sismo.php output myapp-feature-login让多分支测试全自动post-commit 钩子手动敲命令太麻烦真正的多分支持续测试应该零干预。把下面的脚本保存为项目的.git/hooks/post-commit并加上可执行权限每次提交后 Sismo 就会自动构建对应分支#!/bin/sh nohup php /path/to/sismo.php --quiet --force build myapp-feature-login git log -1 HEAD --pretty%H /dev/null 提示其中myapp-feature-login是项目的 slug唯一标识。如果你希望合并分支时也触发测试可以再创建一个post-merge钩子。用 Web 界面与 CCMonitor 一眼看清所有分支状态 Sismo 自带的 Web 界面模板位于src/templates/目录会为每个分支显示独立的构建状态卡片绿/红一目了然。PHP 5.4 用户还能用内置服务器直接启动php sismo.php run localhost:9000然后浏览器访问http://localhost:9000/sismo.php即可。更酷的是Sismo 还暴露了 Cruise Control 格式的 XML 接口/dashboard/cctray.xmlMac 用 CCMenu、Windows 用 CCTray就能把 master 与 feature 分支的状态直接钉在系统托盘上实时掌握每个分支的健康度。多分支测试的最佳实践与注意事项命名规范分支越多越要起名清晰建议统一使用项目名 (分支名)格式配合getShortName()和getSubName()见 src/Sismo/Project.php在界面上自动拆分展示。定时兜底对于远程仓库可添加 crontab 定时任务如0 12 * * * php /path/to/sismo.php --quiet作为本地钩子的补充。注意限制Sismo 刻意保持小巧——没有构建队列如果项目正在构建会忽略新提交因此高频提交场景下建议优先测试你关心的分支。多分支测试并不复杂Sismo 用一套简洁的branch语法就解决了 master 与 feature 分支并行监控的难题。现在就动手配置你的第一个多分支项目让每次提交都有测试护航吧【免费下载链接】SismoYour Continuous Testing Server项目地址: https://gitcode.com/gh_mirrors/si/Sismo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表