gitlab runner
gitlab-ci.yml
script, after_script, allow_failure, artifacts, before_script, cache, coverage, dependencies, environment, except, extends, image, include, interruptible, only, pages, parallel, release, resource_group, retry, rules, services, stage, tags, timeout, trigger, variables, when
常用关键词
自己定义stages
stage
job内部的关键词
任务内的阶段,必须从全局阶段stages中选,stage定义了job运行在哪个stage
运行的顺序是按照阶段里面定义的顺序去执行,而不是你写的顺序去执行
阶段的顺序如下:

下面是默认的stage
job1:
stage: .pre
script:
- echo "This job compiles code."
job2:
stage: build
script:
- echo "This job compiles code."
job3:
stage: test
script:
- echo "This job compiles code."
job4:
stage: test
script:
- echo "This job compiles code."

stages
stages:
- stage1
- stage2
- stage3
job1:
stage: stage1
script:
- echo "This job compiles code."
job2:
stage: stage2
script:
- echo "This job compiles code."
job3:
stage: stage3
script:
- echo "This job compiles code."
job4:
stage: stage3
script:
- echo "This job compiles code."

script
stages:
- stage1
- stage2
- stage3
- deploy
- clean
job1:
stage: stage1
script:
- echo "This job compiles code."
- echo 'my job1'
job2:
stage: stage2
script:
- echo "This job compiles code."
job3:
stage: stage3
script:
- echo "This job compiles code."
job4:
stage: stage3
script:
- echo "This job compiles code."

retry
test:
script: rspec
retry: 2
only/except
only:
- master
only: ['branches', 'tags'] 操作分支或者tags都会触发流水线。
images
tags
tags 关键词是用于指定Runner,tags的取值范围是在该项目可见的runner tags中

项目中可用的Runners

可用的runners有2个,tag有4个

只能定义到某个具体的任务上面
指定流水线运行的Runner,每个环境可能有多个Runner,需要指定一个Runner去运行
when
on_success 所有任务执行成功后
on_failure 当至少一个任务失败后
always 执行作业,而不考虑作业在早期阶段的状态。
manual 手动执行任务
delayed 延迟执行任务
never
在rules中不排除执行的任务
在workflow:rules不允许的流水线
cache
#解决npm not found问题
image node:alpine
stages:
- intall
- build
- deploy
#解决npm run build时,vite: not founcd问题,因为会删除掉node_modules目录
##每个job执行完毕后,都会缓存paths中的内容
cache:
key: vitepro
paths:
- node_modules
- index.html
#安装nodejs的环境
job_install:
stage: install
tags:
- dockercicd1
script:
- npm install
job_build:
stage: build
tags:
- dockercicd1
script:
- npm run build
only:
- release
job_deploy
stage: deploy
tags:
- dockercicd1
script:
- echo 'start deploy'
when: manual
artifacts用于指定在job 成功或失败 时应附加到作业的文件和目录的列表。

artifacts:
paths:
- binaries/
- .config