如何简化GitHub Actions ci.yml中的PHP版本判断条件?
简化GitHub Actions中PHP版本判断的if条件
你可以通过以下两种更简洁的方式实现原有的条件判断:
方法1:使用contains结合JSON数组
GitHub Actions的表达式中直接定义数组需要通过fromJSON解析字符串,这样就能用contains检查当前PHP版本是否在排除列表内,再取反即可:
- name: Make Tests Compatible With PHPUnit 9+ if: "!contains(fromJSON('[\"5.3\", \"5.4\", \"5.5\", \"5.6\", \"7.0\", \"7.1\", \"7.2\"]'), matrix.php-version)" run: php tests/make_compatible_with_phpunit9.php
方法2:使用semver函数做版本区间判断
因为你要排除的都是低于7.3的PHP版本,直接用GitHub Actions内置的semver函数做版本比较更直观,它能正确处理语义化版本的大小判断:
- name: Make Tests Compatible With PHPUnit 9+ if: "semver(matrix.php-version, '>=7.3')" run: php tests/make_compatible_with_phpunit9.php
这两种方法里,方法2更简洁且易维护——后续如果有新的低版本需要排除,不需要修改列表,只要保持版本区间判断即可。
内容的提问来源于stack exchange,提问作者neubert
相关产品推荐
相关产品推荐

