在项目根目录构造一个.gitlab-ci.yml文件。当开发和运维分开时,此文件必须被版本控制管理
现在本项目注册两个runner,tags名为:myproject,mycode
.gitlab-ci.yml的基本结构
## 定义流水线的阶段,可以自己定义名称,用来管理作业流程,默认stages为:build,test,deploy
## 作业顺序就是按照stages定义的顺序,自上而下的执行
## 不管job的编写顺序如何,只按照job内定义的stage顺序执行。
## 不同的job,使用同一个stage,会并行执行
stages:
- build
- test
- deploy
## 第一条作业
job1:
stage: build ## 指定作业阶段
tags: ## 指定作业的runner
- mycode
script: ## 作业执行的脚本
- "ssh root@目标主机 'sh /opt/data/git pull;exit'"
only: ## 针对哪个分支执行
- dev
job2:
stage: deploy
tags: ## 一条流水线可以定义不同的tags
- myproject
script: ## 作业执行的脚本
- "ssh root@目标主机 '/usr/bin/docker-compose -f /opt/data/docker-compose.yml'"
only:
- dev
补充:
runner的定义,其实是跟着项目走的,一个项目一个runner比较好
