开发与运维

CI/CD 工具

流水线出问题一般绕不开这几件事:一份缩进打错的 workflow YAML,一个条件表达式判断结果和你预期的不一样,一个五个字段看起来像那个意思但其实不是的 Cron 调度,或者本该按提交信息推算的版本号目前还是靠手动挑。这些工具在你推送代码、等一次运行失败之前就先检查好 YAML 和表达式。

GitHub Actions 工作流验证和 GitLab CI 编辑器校验两种流水线格式,挑出平台要等运行才报的错误。GitHub Actions 表达式求值用模拟上下文求值条件,不触发运行就能检查 if 表达式。Cron 表达式生成器按五段语法预览执行时间,Jenkins Cron 表达式解释 H 哈希范围,语义化发布助手把提交记录翻译成版本号升级。

6 个工具

CI/CD工具常见问题

怎么在真正运行 workflow 之前测试一条 GitHub Actions 的 if 表达式?

GitHub 只有在 workflow 真正运行的时候才会求值 if 条件,用来检查逻辑很慢。GitHub Actions 表达式求值会拿模拟的上下文变量去求值条件表达式,不用触发一次真正的 workflow 运行就能看到结果。

Jenkins Cron 表达式里的 H 是什么意思?

H 是一个哈希,不是固定值:Jenkins 会根据任务名在给定范围里选一个值,让构建时间分散开而不是全部同时触发。Jenkins Cron 表达式能生成这类表达式,并解释对应的哈希取值范围。

语义化版本号的升级是怎么从提交信息算出来的?

在约定式提交下,fix 类提交升级补丁号,feat 升级次版本号,破坏性变更升级主版本号,判断依据是上次发布以来提交信息的类型前缀。语义化发布助手会读取提交记录,据此计算版本号升级并生成 CHANGELOG 草稿。