1、关键词+使用场景:
1、interruptible 取消作业
job_install:
stage: install
tags:
- test
script:
- npm install
interruptible: true #默认为false
例子🌰: 比如两次提交相隔较近,且都在runing中,会自动取消比较久的一次
注意⚠️: 要避免部署job的interruptible,防止项目的部分部署
2、release 创建一个发布(待深入了解)
参考文档: https://docs.gitlab.cn/jh/user/project/releases/#release-cli-%E5%91%BD%E4%BB%A4%E8%A1%8C
在极狐GitLab 中,发布使您可以为用户创建项目的快照,包括安装包和发行说明。您可以在任何分支上创建极狐GitLab 发布。创建发布还会创建一个 Git 标签 来标记源代码中的发布点
3、timeout 设置超时时间
使用 timeout 为特定作业配置超时。如果作业运行的时间超过超时时间,作业将失败
build:
script: build.sh
timeout: 3 hours 30 minutes # 单位可为 h m s
test:
script: rspec
timeout: 3h 30m
4、resource_group
使用 resource_group 创建一个资源组,以确保同一项目的不同流水线之间的作业是互斥的(也就是说如果恰好触发的两次流水线,且都到了部署阶段,这时只能一个部署完成,在部署另一个)
# 第一次提交
stages:
- intsall
- build
- deploy
job_deploy:
stage: deploy
script:
- echo 'start deploy'
- sleep 120. #睡眠120s
resource_group: prod
# 第二次提交
stages:
- intsall
- build
- deploy
job_deploy:
stage: deploy
script:
- echo 'start deploy 2'
- sleep 120. #睡眠120s
resource_group: prod
从而可以避免久的流水线快于新的流水线,从而代码不是最新的
2、pipeline的调试
1、日志
2、Debug (终极调试)
首先需要配置runner
vim /srv/gitlab-runner/config/config.toml
docker run -d --name gitlab-runner -p 8093:8093 --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest