Celery + Pytest+ Docker + Gitlab-CI/CD 搭建流水线
其他博文链接
Celery-4.1用户指南: Testing with celery
GitLab集成Docker和K8S完成CI/CD持续集成部署工作
文章目录
一、GitLab CI/CD介绍
首先一张图说明Gitlab CI的工作流程
GitLab CI是 GitLab 提供的持续集成服务,只要在你的仓库根目录 创建一个.gitlab-ci.yml 文件, 并为该项目指派一个Runner,当有合并请求或者 push的时候就会触发build。
这个.gitlab-ci.yml 文件定义GitLab runner要做哪些操作。 默认有3个[stages(阶段)]: build、test、deploy。
当build完成后(返回非零值),你会看到push的 commit或者合并请求前面出现一个绿色的对号。 这个功能很方便的让你检查出来合并请求是否会导致build失败, 免的你去检查代码。
大部分项目用GitLab’s CI服务跑build测试, 开发者会很快得到反馈,知道自己是否写出了BUG。
所以简单的说,要让CI工作可总结为以下几点:
在仓库根目录创建一个名为.gitlab-ci.yml 的文件
为该项目配置一个Runner
完成上面的步骤后,每次push代码到Git仓库, Runner就会自动开始pipeline。
二、配置Runner
详细的使用说明,请阅读官方文档:https://docs.gitlab.com/runner/
安装Gitlab Runner
#在ubuntu server16.04~20.04版本下使用命令即可安装
$ sudo wget -O /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
#接着授予可执行权限
$ sudo chmod +x /usr/local/bin/gitlab-runner
#创建一个gitlab-ci用户
$ sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
#安装,并作为服务启动
$ sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
注册Runner(Gitlab管理员权限)
$ sudo gitlab-runner register
需要输入项目的url和Token,查找过程如下
以管理员权限进入仓库->settings->CI/CD,找到Runner Settings这一项,点击Expend,即可在Setup a specific Runner manually这项中找到。如下:
其中的url和Token就是遮起来的内容,只需要在注册过程中填入即可。
命令输入完,点击回车后,会进入注册步骤,共分为以下几步:
- 输入Gitlab实例的URL
可在上图中查看 - 输入要注册的仓库的Token
可在上图中查看 - 输入Runner的描述
这里可以随便输入 - 输入Runner的标签
这里也可以随便输入 - 选择Runner执行器
执行器这里以Docker为示例 - 选择默认镜像(Docker执行器)
默认执行器是当在.gitlab-ci.yml中没有指定镜像(image)是默认的。
这些做完之后就可以启动Runner
$ gitlab-runner start
官方文档说是用gitlab-runner start,有博主说start不生效,用了gitlab-runner run才生效,建议视情况测试。
启动成功后就可以看到,gitlab对应的仓库下(操作:进入仓库->settings->CI/CD,找到Runner Settings这一项,点击Expend,即可在Setup a specific Runner manually)看到注册的runner已经在运行了。
注:如果状态颜色是灰色的表示没有运行成功,也可以选择“Pause”和“Remove Runner”
三、celery+pytest+gitlab-ci 搭建自动化测试
Show me code.
Celery With Pytest.
celery在4.1版本后已经支持Pytest了,并发布了官方文档,更多用法请移步官方文档。
Celery简易Demo
# app.py
from celery import Celery
celery_demo_app = Celery('celery_app',broker='redis://172.18.21.254:6379/1',backend='redis://172.18.21.254:6379/2')
@celery_demo_app.task
def add(x, y)

本文介绍了如何利用Celery、Pytest、Docker和Gitlab-CI/CD搭建自动化测试和部署流水线。内容包括GitLab CI/CD的简介、配置Gitlab Runner、创建.gitlab-ci.yml文件、实现Celery+Pytest的自动化测试,以及结合Docker和Gitlab-CICD实现完整的CI/CD流程,包括K8s自动化部署的初步探讨。
最低0.47元/天 解锁文章
290

被折叠的 条评论
为什么被折叠?



