检测到Symfony弃用提示时如何让Jenkins构建失败或标记为不稳定
实现Symfony弃用警告触发Jenkins构建管控的方案
方案1:通过phpunit-bridge原生配置直接让构建失败
symfony/phpunit-bridge 本身内置了弃用阈值控制能力,你可以通过环境变量SYMFONY_DEPRECATIONS_HELPER自定义弃用校验规则:
- 只要自身业务代码出现任意新增弃用就直接终止测试、返回非0退出码(Jenkins默认会将非0退出码的步骤判定为构建失败),配置值为
max[self]=0。这里的self限定仅统计你项目代码触发的弃用,第三方依赖的弃用不会被计入,符合迁移期避免新增业务代码弃用的需求。 - 如果需要统计所有来源的弃用(含第三方依赖),直接设置为
max=0即可。 - 如果你当前还有没清理完的历史遗留弃用,可以设置为
max[self]=<当前现存的弃用数量>,只要后续提交导致弃用数超过阈值就会报错,等你逐步清理完遗留弃用再将阈值调整为0即可。
你可以直接在Jenkins的测试执行命令中注入环境变量:
SYMFONY_DEPRECATIONS_HELPER="max[self]=0" ./bin/phpunit
也可以直接写入项目的phpunit.xml配置中,全局生效:
<php> <env name="SYMFONY_DEPRECATIONS_HELPER" value="max[self]=0" /> </php>
方案2:将弃用警告标记为构建不稳定(非直接失败)
如果不需要直接失败,仅希望将存在弃用的构建标记为不稳定状态,可以配合Jenkins的Warnings NG插件实现:
- 执行phpunit时新增参数输出结构化日志:
./bin/phpunit --log-junit build/phpunit.xml - 在Jenkins的构建后步骤中添加「记录静态分析结果」步骤,选择PHPUnit解析器,配置对应警告阈值,当识别到弃用类警告时自动将构建标记为不稳定即可。
迁移期适配技巧
- 可以针对不同分支设置不同阈值:主分支允许现存的遗留弃用数,特性分支要求弃用数不能超过主分支,从流程上避免新增弃用。
- 对于暂时无法修复的特定弃用,可以通过
ignore参数过滤:SYMFONY_DEPRECATIONS_HELPER="max[self]=0&ignore=~特定弃用描述正则~",待后续清理完成后再移除过滤规则即可。
内容的提问来源于stack exchange,提问作者user2937998
相关产品推荐
相关产品推荐

