在日常的流水线部署中,我们经常会遇到频繁地推送代码的场景。
如:一个分支,3个人在一分钟内都合并了一次,那么就会触发三次流水线,虽然触发三次流水线没有问题,但有时我们想要一个自动取消多余流水线的功能。需求的意思就是 如果当前有pengding或者running的流水线,此时又有新的流水线被触发(同一分支),那么我们期望能够自动取消旧的流水线,一是保证资源的合理利用,二是保证不会出现部署旧代码到测试环境。
那么在极狐GitLab CI/CD 中具体该怎么做那?
一图胜千言。
设置完这个属性后, 运行一段时间,你又会发现新的问题。
我这一个流水线每次都要跑50分钟,好家伙,快跑完的时候,你突然又来了一个流水线,导致我的流水线被取消了。 这种时候,谁遇到不急啊?
该怎么办那?
开发经验丰富的极狐GitLab人员已经考虑过这个问题了。
他们给出的一个解决方案就是 使用 interruptible
关键词
该关键词,定义到一个具体的job上,表明该任务是否能够被新的流水线打断&