python全栈9期完整137天_7天入门python全栈工程师07——持续集成

在开发过程中,我们的代码不断迭代修改BUG,如果使用C或JAVA编写代码完成后还要打包,在大型项目中单独打包耗时很久,所以衍生出持续集成概念。我们提交代码到版本控制服务器上,触发特定条件后程序会执行测试代码,测试完成后打包生成,整个过程我们称之为持续集成。

Gitlab-runner是配合gitlab ci一起使用的后台运行任务并把结果返回gitlab的服务。Gitlab-runner允许使用令牌方式运行多个任务,可以工作在多种模式下,包括本机、使用docker容器、在容器内使用SSH执行任务、在容器内连接不同云或虚拟化程序进行自动缩放、通过SSH连接到远程服务器。

1、找到持续集成地址和令牌

打开gitlab页面上的项目,这里是http://192.168.1.137:8000/xyj/flask-demo,点击Settings进入项目设置,次级目录中选择CI/CD Pipelines记录Specific Runners中提供的url和token以备后续使用。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F8OrDcSauBFJ1UdI3E0Ez4feZbNHtWoH2j4c7x7RgKUOmW1502551268998.jpg&thumbnail=650x2147483647&quality=80&type=jpg

查找持续集成令牌

2、在命令行中将gitlab项目与gitlab-runner绑定

使用docker exec命令在c-gitlab-ci容器中执行gitlab-runner register命令,将gitlab-runner和gitlab项目进行绑定。

?url=http%3A%2F%2Fdingyue.ws.126.net%2FIox%3DRUI2TBDqC9NeN1SOYbjek6krDvPNSYyET3ii5AIgC1502551268999compressflag.jpg&thumbnail=650x2147483647&quality=80&type=jpg

令牌和gitlab-runner绑定

3、创建.gitlab-ci.yml文件

Gitlab 7.12版本开始使用.gitlab-ci.yml文件来控制gitlab-runner自动构建的配置文件,.gitlab-ci.yml文件存放在项目的根目录下。浏览项目主页,点击Set up CI进入自动构建配置页面。

# 使用Docker中的docker镜像

# image: python:3.6

image:docker:latest

# 服务定义了在构建期间运行的另一个Docker映像

services:

- docker:dind

# 定义构建变量

variables:

# 自定义镜像名称,使用了gitlab保留变量CI_PROJECT_ID当前项目的唯一ID

IMAGE_TAG :"myflask:$CI_PROJECT_ID"

# 定义任务可以使用的阶段,所有阶段顺序执行,如果遇到失败则后面阶段全部失败

stages:

# 测试阶段

- test

# 构建阶段,通过测试阶段后构建镜像

- build

# 提交阶段,构建完成镜像后提交到docker仓库

- push

# 清理阶段,清理构建时候产生的数据

- cleanup

# 任务名,可以自定义

build:

# 该任务所在阶段

stage:build

# 执行shell命令

script:

# - docker info

- docker build -t "$IMAGE_TAG" .

test:

image:python:3.6

stage:test

script:

- export PYTHONPATH=/builds/xyj/fullstack_blog

- apt-get update -qy

- apt-get install -y python3-dev python3-pip

- pip install -r requirements.txt

- cd blog_site/admin/test/

- echo $PYTHONPATH

# - pwd

- python test.py

# 提交

push:

# 提交阶段

stage:push

# 执行shell命令

script:

# 登录本地registry

- docker login -u "xyj" -p "docker-registry" myregistry.com:8080

# 将自动构建镜像打标签

- docker tag "$IMAGE_TAG" "myregistry.com:8080/myflask"

# 上传镜像

- docker push "myregistry.com:8080/myflask"

# 清理

cleanup:

# 清理阶段

stage:cleanup

script:

# 停止容器

# - docker stop c-test-flask

# 移除容器

# - docker rm c-test-flask

# 移除生成的镜像

- docker rmi "$IMAGE_TAG"

4、查看构建任务消息

?url=http%3A%2F%2Fdingyue.ws.126.net%2FFSZcVZGC8IjYyRlwJiJ3iSAx8HLiJ3VdD8fIp1AwELWG21502551269000.jpg&thumbnail=650x2147483647&quality=80&type=jpg

查看构建状态

更详细内容请关注由电子工业出版社2017年10月出版的《python全栈开发实战》全书400幅图,包含各种坑解决方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值