搭建持续集成CI流水线

在搭建流水线之前,需要先了解流水线平台的使用和实现原理。底层基于Jenkins和Kubernetes作为资源池,触发流水线的方式主要有代码提交、标签触发、合并请求触发、定时分支和手动触发。这些方式都可以通过配置来实现,例如可以设置定时任务来触发流水线,或者在代码提交时自动触发流水线。

不同产品的流水线阶段任务有所不同,但通常都包括代码扫描、单元测试、打包和部署等步骤。在代码扫描阶段,可以使用公司提供的代码扫描公共库,选择对应的语言环境,并配置编译命令。在单元测试阶段,需要在机器上使用指定的镜像,并申请自定义主机来配置流水线的执行机。在打包和部署阶段,可以使用Docker镜像来打包和部署应用程序。

在开始搭建流水线之前,需要获取GitLab仓库的权限,并查看GitLab CI文件,其中说明了持续集成、代码扫描、单元测试等阶段使用的镜像以及执行脚本。镜像的话需要自己打,并上传到指定的平台。

先来说说镜像和打包脚本的重头戏,这个比较精彩就先放这里,当然按照流程应该是先代码扫描,再单测,接口测试,通过后再打包,推送制品。

下面是一个简单的dockerFile

FROM ubuntu:18.04

RUN apt-get update && \
    apt-get install -y python3 python3-pip && \
    pip3 install flask

COPY node-v16.17.1-linux-x64.tar.xz /node-v16.17.1-linux-x64.tar.xz
RUN tar -xJf /node-v16.17.1-linux-x64.tar.xz -C /usr/local --strip-components=1 \
      && ln -s /usr/local/bin/node /usr/local/bin/nodejs
RUN rm /node-v16.17.1-linux-x64.tar.xz

COPY app.py /app.py


EXPOSE 5000

CMD ["python3", "/app.py"]

这个Dockerfile的作用是构建一个包含Python3、Flask和Node.js的镜像。它首先安装了Python3和Flask,然后从主机上复制了一个Node.js的压缩包到容器中,并解压缩安装了Node.js。最后,它将主机上的Flask应用程序代码复制到容器中,并指定了容器启动时要执行的命令,即运行python3 /app.py命令来启动Flask应用程序。这个镜像可以用于运行一个全栈Web应用程序,例如使用Flask和Node.js来构建一个Web应用程序。

docker build -t my-flask-app .

启动镜像docker run -it my-flask-app /bin/bash

由于环境受限前端包和后端包需要不同的镜像打包,CI的文件也只是产出一个压缩包,要实现打包的拼装,并不简单。

首先是前端打包的脚本

#!/bin/bash

# 导出路径变量
export PACKAGE_PATH="/front_pkg"

# 获取分支名称
branch=${CI_COMMIT_BRANCH}
echo "test_appname${branch}"
app_name=${C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值