【GitLab管道】needs、cache、artifacts、变量
needs
阶段并行,可无序执行作业,无需按照阶段顺序运行某些作业,可以让多个阶段同时运行
如果needs设置为指向因only/except规则而未实例化的作业,或者不存在,则创建管道时会出现yml错误
stages:
- sta1
- sta2
- sta3
job1:
stage: sta1
script:
- echo 'job1 execute'
- sleep 5
job2:
stage: sta2
needs: []
script:
- echo 'job2 execute'
- sleep 20
job3:
stage: sta3
needs: ["job1"]
script: echo 'job3 execute'
job1和job2同时执行,job3在job1执行完后执行
cache
https://zhuanlan.zhihu.com/p/105945748
缓存覆盖问题
如果不使用key,不同stage的缓存都会存在default下,生成cache.zip覆盖原来的缓存。
推荐使用以下方式:
stages:
- build
- test
job A:
stage: build
script: make build
cache:
key: same-key
paths:
- public/
job B:
stage: test
script: make test
cache:
key: same-key
paths:
- vendor/
artifacts、cache区别:
artifacts:称作"制品",一般是构建阶段生成的产物,比如C程序编译后的可执行文件,很可能是之后需要拿去测试发布。制品可以在不同的stage间传递。
cache:缓存一般用于存储项目的依赖,比如pip、npm、vendor,项目依赖变动不大的情况下使用缓存可以极大地加速构建过程。
变量
$ echo "CI_PIPELINE_SOURCE:$CI_PIPELINE_SOURCE"
CI_PIPELINE_SOURCE:push
$ echo "CI_COMMIT_REF_NAME:$CI_COMMIT_REF_NAME"
CI_COMMIT_REF_NAME:v4.7-bug-fix
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-04-26 Javascript 发布订阅组件