Jenkins持续集成前端项目

Jenkins持续集成前端项目

2022年10月12日 阅读:9 字数:509 阅读时长:2 分钟

前端项目Jenkins持续集成,拉取代码进行检查,构建项目打包Docker镜像,更新到K8s。

前言

前端项目Jenkins持续集成

  1. 按分支或标签拉取Gitlab代码
  2. SonarQube静态代码检查
  3. 安装依赖
  4. 构建项目
  5. 打包Docker镜像
  6. Docker镜像推送到Harbor
  7. 更新到K8S

1、全局配置

安装Node.js环境用于下载依赖、打包构建

安装SonarQube用于静态代码检查

2、拉取代码

可以拉取Git或SVN仓库的代码,我们使用的是Gitlab

填写git地址,添加参数,再持续集成构建时可以选择代码的分支或标签

3、SonarQube静态代码检查

由于静态代码检查比较耗时,不用每次构建都执行,定时执行即可

所以添加条件判断是否需要执行,需要安装Conditional BuildStep插件,或者编写shell条件命令,为了和SonarQube关联,这里我们使用Conditional BuildStep

安装完成,在项目配置里面添加布尔值参数,默认不勾选

构建步骤里面,判断上面的参数再执行SonarQube检查

4、安装依赖

每次执行都会执行npm install安装依赖,当然也可以换成yarn或者pnpm,在Jenkins宿主机安装好就可以

5、构建项目

我们只有发布上线才会打包现代模式,平时只需要输入兼容历史浏览器的包,以减少构建时间

同样添加布尔值参数,默认不勾选

构建添加shell脚本

echo "-------------------安装依赖------------------------"
npm install

echo "-------------------构建打包------------------------"
if [ "$isRelease" == "true" ]; then
echo "-------------------现代模式------------------------"
npm run release
else
npm run build
fi

6、打包Docker镜像

echo "-------------------打印Dockerfile------------------------"
cat Dockerfile
echo "-------------------Build镜像开始------------------------"
docker build -t 172.0.0.1/timeless/blog:$tag . 
echo "-------------------Build镜像结束------------------------"

7、推送更新

echo "-------------------Push镜像开始------------------------"
docker login 172.0.0.1 -u timeless -p Harbor123go
docker push 172.0.0.1/timeless/blog:$tag && docker rmi 172.0.0.1/timeless/blog:$tag
docker logout 172.0.0.1
echo "-------------------Push镜像结束------------------------"

echo "-------------------推送镜像到k8s开始------------------------"
/var/jenkins_home/imsenv/k8s/kubectl --kubeconfig=/var/jenkins_home/imsenv/k8s/config  set image deployment/blog blog=172.0.0.1/timeless/blog:$tag -n production
echo "-------------------推送镜像到k8s结束------------------------"

推荐阅读

恰饭区

评论区 0

0/500

还没有评论,快来抢第一吧