1、安装gitlab runner
runner是一个任务执行器,我们可以在任意一个可访问的地方安装runner,并注册到我们的gitlab系统中,这样我们就能使用gitlab ci/cd功能进行持续集成构建项目了
可以直接在linux安装,也可以使用docker方式安装,下面是docker
1.1 安装
#创建目录放置配置
mkdir -p /data/gitlab-runner/config
#启动docker容器,如果镜像不存在会自动拉取
docker run -itd --restart=always --name gitlab-runner \
> -v /data/gitlab-runner/config:/etc/gitlab-runner \
> -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
1.2 注册
先进入容器,在进行注册
root@buntu:docker exec -it gitlab-runner bash
root@3d5e7569adce:/# gitlab-runner register
Runtime platform arch=amd64 os=linux pid=27 revision=c6e7e194 version=14.8.2
Running in system-mode.
Enter the GitLab instance URL (for example, https://gitlab.com/):
https://gitlab.yourdomin.com.cn/ #你的gitlab服务域名
Enter the registration token:
ciA6DkobmzZVYLF-xxxx #在gitlab->管理区域->概述->Runners的注册令牌
Enter a description for the runner:
[3d5e7569adce]: runner for demo #随便写
Enter tags for the runner (comma-separated):
irunner #在yaml文件的tags中使用,必须以字母开头
Enter optional maintenance note for the runner:
Registering runner... succeeded runner=ciA6Dkob
Enter an executor: docker-ssh+machine, custom, docker, docker-ssh, shell, virtualbox, parallels, ssh, docker+machine, kubernetes:
docker
Enter the default Docker image (for example, ruby:2.7):
docker:20.10.7
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
注册成功后在gitlab ->管理区域->概述->Runners可以看到你的runner
1.3 查看修改tag
点击上图的编辑可以修改 tags(标签),一般不要修改。否则之前yaml中写的tags都要改。还可以为这个runner指定固定的仓储
2、编写yaml文件
yaml文件介绍,下面是个demo,可以测试使用。正式请看官方文档
在你的项目根目录下创建.gitlab-ci.yml文件,内容如下
stages:
- install
- build
- deploy
cache:
key: ${CI_BUILD_REF_NAME}
paths:
- node_modules/
- dist
# 安装构建依赖
install_job:
stage: install
only:
- master # 指定分支
script:
- echo '安装构建依赖'
tags:
- irunner
# 构建预prod环境src目录下应用
build_job:
stage: build
only:
- master
script:
- echo '构建应用'
tags: # 指定runner
- irunner
# 部署生产环境
deploy_job:
stage: deploy
only:
- master
script:
- echo '部署生产环境'
tags:
- irunner
3、触发执行
在具体某个仓储项目->设置->CI/CD添加一个触发器,随便起个名字
3.1 webhook,注意tTOKEN和REF_NAME
使用postman测试
查看构建状态
3.2自动触发构建
我们yaml文件标记的分支是master分支,当master有提交代码或者有分支合并到master时候
会自动触发构建。