测试GitLab-CI环境搭建
GitLab-CI环境搭建
欢迎加⼊测试交流:夜⾏者⾃动化测试(816489363)进⾏交流学习QAQ
成都-阿⽊⽊
现在的中⾼级⾃动化测试,测试开发⼯程师等招聘需求上都有写,需要会CI/CD,你真的会搭建吗?测试CI/CD环境搭建,常见的环境有两种:
jenkins
gitlab-ci
本专题为gitlab-ci环境搭建专题
安装gitlab环境,gitlab我们在实际使⽤过程中,代码通过git提交到gitlab私有仓库,然后通过gitlab-runner运⾏我们的脚本,根据脚本的结果决定是否发送测试报告到相关负责⼈的邮箱。本次gitlab环境的搭建使⽤docker进⾏搭建,建议有⼀些docker基础知识的了解在看本教程。在⼀般测试⼯作中,gitlab环境通常是由运维提供,提供⼀个gitlab-runner给我们,我们只需要写好ci脚本即可。
搭建过程如下:
选择⼀台centos服务器(内存不⼩于4G)安装docker环境(其他服务器也可以,详情查看docker官⽅⽀持)
安装docker-compose
可选操作(修改国内下载镜像源,可以使⽤阿⾥云提供的镜像加速服务,不然下载会很慢)
拉取gitlab-ce官⽅镜像,使⽤docker search gitlab,搜索最新的gitlab-ce,使⽤docker pull 拉取,我之前已经拉取过了,不在重新拉取
[root@chineseluo docker-compose-gitlab-ce]# docker search gitlab
git设置用户名和邮箱NAME DESCRIPTION STARS OFFICIAL AUTOMATED
gitlab/gitlab-ce GitLab Community Edition docker image based … 3027 [OK]
[root@chineseluo docker-compose-gitlab-ce]# docker pull gitlab/gitlab-ce
拉取成功之后,使⽤docker images 可以查看到你拉取的镜像
[root@chineseluo config]# docker images | grep gitlab-ce
gitlab/gitlab-ce latest 3494787883fd 6 days ago 1.92GB
新建⼀个⽬录,⽤于存放l⽂件,我在此处新建了⼀个docker-compose-gitlab-ce的⽂件夹,然后新建了⼀个l⽂件,在⾥⾯写⼊如下内容:
web:
image: 'gitlab/gitlab-ee:latest'
restart: always
hostname: 'ample'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'ample:8929'
gitlab_rails['gitlab_shell_ssh_port']= 2224
ports:
- '8929:8929'
- '2224:22'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
然后在该⽬录下使⽤docker-compose up -d命令,等待执⾏完,通过浏览器访问你的服务器地址+端⼝8929即可
输⼊密码和确认密码,这个密码是超级管理员密码,设置完成后,超管的账号密码为:root 和你设置的密码,登录
在这个⾯板中,有⼏个主要的功能:
Unlock more features with GitLab Ultimate:其他GitLab的付费功能,不关注
Create a project:创建项⽬,⽤来存储代码,访问问题,Wiki和其他功能
Create a group:建⽴组,赋予组成员不同的访问权限
add people:增加成员
Configure GitLab:配置GitLab
到这⾥gitlab搭建的第⼀阶段就算完成了
使⽤gitlab:
添加成员,输⼊name、Username、Email,修改⼀下权限,给这个⽤户⼀个管理员权限,后⾯我们需要配置gitlab-runner等操作。
由于我是在内⽹⾃⼰搭建的gitlab服务,邮箱发送不出去,所以,我们需要使⽤root⽤户修改⼀下我们新增⽤户的密码,可以设置简单⼀些,因为新⽤户登录会需要重置密码
使⽤新添加的⽤户登录,登录进去之后修改密码,然后使⽤修改后的密码登录
安装配置gitlab-runner:
点击Configure GitLab
点击Overview下⾯的Runners:
可以⾃⾏点击Install GitLab Runner中不同的Runner的安装⽅式,本⽂采⽤docker安装
安装runner过程:
在gitlab-ce的服务器上或者其他安装了docker环境的服务器上,docker search gitlab-runner
[root@chineseluo docker-compose-gitlab-ce]# docker search gitlab-runner
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
gitlab/gitlab-runner GitLab CI Multi Runner used to fetch and run… 634 [OK]
拉取gitlab-runner镜像:
docker pull gitlab/gitlab-runner
设置两个⽬录作为gitlab-runner的服务器本地存储映射,两个⽬录分别为/srv/gitlab-runner/config和/var/run/docker.sock,然后执⾏以下docker命令
docker run -d --name gitlab-runner --restart always \
> -v /srv/gitlab-runner/config:/etc/gitlab-runner \
> -v /var/run/docker.sock:/var/run/docker.sock \
> gitlab/gitlab-runner:latest
使⽤docker ps | grep gitlab-runner查看容器是否运⾏
[root@chineseluo config]# docker ps | grep gitlab-runner
061920a459bc gitlab/gitlab-runner:latest "/usr/bin/dumb-init …" About a minute ago Up 58 seconds
注册gitlab-runner到gitlab-ee中,执⾏以下命令
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
输⼊命令后回车会让你输⼊⼀些注册信息,下⾯稍微说明⼀下:
[root@chineseluo config]# docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
Runtime platform arch=amd64 os=linux pid=6 revision=738bbe5a version=13.3.1
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. gitlab/):
10.5.51.58:8929/ #输⼊您的GitLab实例URL(也称为gitlab-ci coordinator URL)。
Please enter the gitlab-ci token for this runner:
74NyvCweRVcVfYdD6CVw #输⼊您获得的令牌以注册跑步者。
Please enter the gitlab-ci description for this runner:
[c916f369ceeb]: tester #输⼊跑步者的描述。您可以稍后在GitLab的⽤户界⾯中更改此值。
Please enter the gitlab-ci tags for this runner (comma separated):
runner-test #输⼊与Runner关联的标签,以逗号分隔。您稍后可以在GitLab的⽤户界⾯中更改此值。
succeeded runner=74NyvCwe
Please enter the executor: custom, docker, parallels, ssh, virtualbox, docker-ssh+machine, docker-ssh, shell, docker+machine, kubernetes: docker #提供跑步者执⾏者。对于⼤多数⽤例,请输⼊ docker。
Please enter the default Docker image (e.g. ruby:2.6):
Please enter the default Docker image (e.g. ruby:2.6):
python #输⼊执⾏你脚本的docker容器
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
刷新web界⾯,查看Overview下的Runners,多了新添加的
修改runner的运⾏时间,点击edit⼩图标,修改时间之后保存
指定gitlab-runner运⾏的容器,我们在之前制定了runner运⾏的容器为python容器,我们需要执⾏以下命令将python的镜像拉取下来docker pull python
要通过gitlab运⾏我们的python脚本,必须要在我们的脚本中添加⼀个.l⽂件,在其中设置好运⾏作业、阶段、作业前执⾏的脚本、作业执⾏后的脚本等简单介绍⼀下⼏个常⽤关键词,具体学习查看
新建作业(job)
定义阶段(stage)
允许失败(allow_failure)
⼈⼯触发(when:manual)
作业运⾏前执⾏脚本(before_script)
作业运⾏后执⾏脚本(after_script)
写⼀个简单的.l:
image: python
stages:
- test
test_runner:
stage: test
script:
- python run.py
only:
- master
环境已经基本搭建完成了,剩下来要做的就两个步骤,⼀个是在我们的gitlab中创建⼀个git项⽬,第⼆步是将我们的脚本和.l上传到这个仓库,上传脚本到仓库的步骤不演⽰,在脚本⽬录,git init之后,git remote origin 远程仓库地址即可。
#!/user/bin/env python
# -*- coding: utf-8 -*-
"""
------------------------------------
@Project : gitlab-runner-test
@Time : 2020/9/3 15:27
@Time : 2020/9/3 15:27
@Auth : chineseluo
@Email : 848257135@qq
@File : run.py
@IDE : PyCharm
------------------------------------
"""
def print_test_info():
for i in range(0,20):
print("***************************")
print("开始GitLab-Runner测试结果输出")
print("这是成都-阿⽊⽊的测试环境搭建⼩课堂")
print("各位童鞋,下课")
print("***************************")
if __name__ =='__main__':
print_test_info()
`.l`
~~~yaml
image: python
stages:
- test
test_runner:
stage: test
script:
- python run.py
only:
- master
.gitignore(这个⽂件的作⽤是忽略上传某些⽬录到git上⾯) .idea
提交代码到仓库后,可以看到runner的控制台输出:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论