知识卡片
原生镜像编译校验该放哪个流水线阶段
内容
把 GraalVM 原生镜像的编译和测试步骤加进提交阶段,理论上能第一时间发现”代码在原生模式下跑不起来”这类问题,及早暴露反而是好事;但[[部署流水线三阶段的时间预算]]要求提交阶段控制在几分钟内,好让开发者能快速拿到反馈、切换到下一个任务,而原生镜像编译本身耗时长、吃资源多,一旦塞进提交阶段,很容易把这个阶段的执行时间拖垮,反而破坏了提交阶段本该提供的”快速反馈”这个核心承诺。这种情况下更合理的做法是把原生模式的构建校验挪到验收阶段——那里本来就允许跑得慢一些,能在不牺牲提交阶段响应速度的前提下,依然保留”尽早发现原生兼容性问题”这个目标。发散:这是给流水线加检查项时一个常被忽略的判断维度——”这项检查本身该不该做”和”这项检查该放在流水线的哪个阶段做”是两个独立的问题,检查越有价值不代表就该塞进最早、最快的那个阶段,还要看它的耗时是否和该阶段的时间预算兼容。
参考来源
《Cloud Native Spring in Action》第16章《Serverless, GraalVM, and Knative》