LabHub
学习 学习路径 课程

GitLab CI/CD

一个 job 里装着的东西

在 LabHub 中继续学习

一句话总结

抓住的最高位数,在其中创造执行是script只有一个,其余的键全部是“什么时候·在哪里·拿着什么”那个script是决定是否旋转的装饰。

##为什么需要这个

第一次读管道设置的人最常犯的误解是认为只要记住键名就可以了。但实际上,堵塞的点不是语法,而是结构。stage写了,但是看不到抓,image写了,但用上了其他图像,把同样五行的内容复制到六行中,然后只修改一个地方,就会出错。三种情况都是因为一个原因——不知道被抓住了什么,什么没有被抓住了,以及钱从哪里流入。

概念图: 隐藏 · 在哪里找 · 什么时候去 · 拿什么去

怎么操作

最高级映射的一个键是唯一的。但是三个是例外。第一,stages·variables·default·include·workflow是预约的全域设置,不是杂项。第二,名字以点开头的键(.python-base相同的东西)因为是隐藏,所以不会上升到管道中的执行对象。第三,如果值不是映射,就无法被捕获。

把抓的抓变成script全部。script没有捕获的捕获设置错误,GitLab根本不会创建这样的管道。这不是琐碎的规则,而是设计意图——没有要执行的东西就没有存在的理由。

剩下的字母用三根线绑起来的话,要记住的东西就会减少。在哪里找image·services·tags去决定。什么时候去stage·needs·rules去决定。拿什么去variables·artifacts·cache·before_script定。在实习中接触到的键全部都在这三条分支中。

减少重复的装置有两个,性格不同。default是适用于没有任何设定的小人物的底价。如果是全员,如果小人物直接使用相同的身高的话,那边会赢。extends深深地合并指定的小块并带回来。所以在小块上before_script在抓捕中留下script可以进行完全不同的使用方式的重复使用。看起来相似的YAML锚点(&/*)不是合并,而是将整个内容展开在那个位置,只在单个文件中有效。include不能在带来的文件之间使用。所以实际操作模板不是锚点。extends用写。

在实际工作中经常发生的事故

最常见的事故是抄写。script如果把它放得更深一层的话,它就不是抓的键,而是前键的下一个项目,抓住的script成为没有的杂项,在设置验证中被拒绝或在列表中悄然消失。YAML没有任何抱怨这一点使这个错误持续了很长时间。

第二常见的是在制作雕塑时遗漏了点。python-base写成那样的话,那不是传下来的作品,而是每个管道上实际运行的杂物。一般来说script因为没有,所以会因为设置错误而被抓到,但在碎片上script放入的情况下,会正常运行,但会一直执行一个毫无意义的杂项程序。

##下次实习要做的事情

抛开一个设定,直接回答什么是抓住的,什么是没有抓住的,同名的变量中哪个值会赢,每个情况中哪个抓住的会发生。在该文件中可以看到哪个是底价,哪个是合并的分界点。