Jenkins部署构建项目

文章目录

  • 背景
  • 需要先安装好Jenkins
  • 插件安装
    • 系统管理
    • 插件管理
    • 插件查找,找到后勾选左下角安装
    • 中文设置插件
    • Maven插件
    • Jenkins部署前清空原有workspace
    • 安装git插件
  • 部署java流水线(以码云为例)
    • 全局配置
      • maven配置
      • Jdk设置
      • Git设置
      • Maven
    • Git权限配置
      • Liunx生成公钥
      • 查看公钥
      • Gitee添加公钥
        • 首次需要确认并添加主机到本机SSH可信列表
  • 设置后端流水线
    • 命名流水线
    • 选择丢弃版本
    • 设置git地址和分支
    • 构建触发器
    • 构建环境
    • Build
    • Post Steps
    • 启动流水线
      • 找到要启动的项目
      • 启动构建
      • 项目构建成功
  • 构建前端代码流水线
    • 前置要求
      • 先在服务器上面安装nvm
        • 下载nvm安装包
        • 解压nvm
        • 配置环境
        • 启动配置
      • 安装nginx
    • 命名流水线
    • General
    • 源码管理
    • 构建环境
    • 构建
    • 启动构建
    • 构建成功
  • 可能出现的问题
    • maven版本问题
    • nvm版本问题
      • 问题表现
      • 问题解决
      • nvm安装
        • 下载
        • 解压
        • 配置环境
        • 配置生效
        • 查看nvm版本

背景

在代码不断修改的过程中,去服务器部署,需要人为的重复工作,所以用jenkins去代替人力,去服务器上面部署最新的代码,提高工作效率,让测试等不懂部署方式的人,也可以去根据最新代码部署项目。该介绍包括前后端项目的部署。

需要先安装好Jenkins

我之前有一篇安装Jenkins文章,有需要的可以去看一下。
Jenkins部署构建项目_第1张图片

插件安装

系统管理

Jenkins部署构建项目_第2张图片

插件管理

Jenkins部署构建项目_第3张图片

插件查找,找到后勾选左下角安装

Jenkins部署构建项目_第4张图片

中文设置插件

Jenkins部署构建项目_第5张图片
安装好后去系统管理中设置
Jenkins部署构建项目_第6张图片
找到刚刚的插件输入zh_CN,点击应用就可以了,如果不行,进行jenkins的重启。
Jenkins部署构建项目_第7张图片

Maven插件

Jenkins部署构建项目_第8张图片

Jenkins部署前清空原有workspace

输入workspace cleanup
Jenkins部署构建项目_第9张图片
重启Jenkins后就可以看到对应功能
Jenkins部署构建项目_第10张图片

安装git插件

Jenkins部署构建项目_第11张图片

部署java流水线(以码云为例)

全局配置

maven配置

Jenkins部署构建项目_第12张图片

Jdk设置

Jenkins部署构建项目_第13张图片

Git设置

Jenkins部署构建项目_第14张图片

Maven

Jenkins部署构建项目_第15张图片

Git权限配置

Liunx生成公钥

# 中间内容随意,只是作为名词管理
ssh-keygen -C "[email protected]" 

查看公钥

cat ~/.ssh/id_rsa.pub

在这里插入图片描述

Gitee添加公钥

Jenkins部署构建项目_第16张图片

首次需要确认并添加主机到本机SSH可信列表
ssh -T [email protected]

Jenkins部署构建项目_第17张图片

设置后端流水线

命名流水线

根据流程去命名流水线,创建一个maven项目的流水线。
Jenkins部署构建项目_第18张图片

选择丢弃版本

Jenkins部署构建项目_第19张图片

设置git地址和分支

一定上面对应公钥的账号一定要有下面代码库的权限,否则会报权限异常。
Jenkins部署构建项目_第20张图片

构建触发器

这次选择的是手动创建,也可以在下面选择push代码时,进行流水线构建。
Jenkins部署构建项目_第21张图片

构建环境

Jenkins部署构建项目_第22张图片

Build

pom.xml
clean package -Dmaven.test.skip=true -Ptest

Jenkins部署构建项目_第23张图片

Post Steps

Jenkins部署构建项目_第24张图片

其中shell脚本,记得一定要将项目启动脚本提前放入到对应工作目录中

# jenkins中存放项目资源的位置/var/lib/jenkins/workspace/流水线名称/TARGET_DIR位置
TARGET_DIR=demo
# 项目的工作目录,放jar包,日志和启动脚本
WORKDIR=/export/项目名称/backend
JARNAME=项目jar包名称.jar

TMP_JARNAME=$JARNAME".tmp"
cp $TARGET_DIR"/"$JARNAME $WORKDIR/$TMP_JARNAME
cd $WORKDIR
echo "当前工作路径: "`pwd`
mv $JARNAME $JARNAME.$(date +%Y%m%d%H%M).bak || true
mv $TMP_JARNAME $JARNAME
./start.sh

启动流水线

找到要启动的项目

Jenkins部署构建项目_第25张图片

启动构建

Jenkins部署构建项目_第26张图片
下面生成新的构建记录
Jenkins部署构建项目_第27张图片

项目构建成功

其中有编译过程,将旧版本jar包改名和运行启动脚本。
Jenkins部署构建项目_第28张图片

构建前端代码流水线

前置要求

先在服务器上面安装nvm

用来管理nodejs
Jenkins部署构建项目_第29张图片

下载nvm安装包

安装包地址

解压nvm
mkdir -p /root/.nvm
tar -zxvf nvm-0.38.0.tar.gz -C /root/.nvm
配置环境

打开 ~/.bashrc

gedit ~/.bashrc

末尾添加下面语句

export NVM_DIR="$HOME/.nvm/nvm-0.38.0"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  
# This loads nvm bash_completion
# nodejs下载更换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
启动配置
source ~/.bashrc

安装nginx

nginx安装教程
在nginx.conf配置文件中进行配置。

server {
        listen       8888;
        server_name  localhost;

        location / {
            alias  /export/项目名称/fontend/dist/;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
 }

命名流水线

Jenkins部署构建项目_第30张图片

General

Jenkins部署构建项目_第31张图片

源码管理

Jenkins部署构建项目_第32张图片

构建环境

Jenkins部署构建项目_第33张图片

构建

Jenkins部署构建项目_第34张图片

#!/bin/bash -ilex
# 工作目录
WORK_DIR=/export/项目目录fontend
NODE_VERSION=16.17.0
BUILD_PROFILE=build:stage
# 访问后端接口
URL=http://ip:端口号
PROFILE_FILE=.env.staging

if [ -n "$URL" ]; then
    echo "VITE_APP_BASE_API = '$URL'" >> $PROFILE_FILE
fi
nvm use $NODE_VERSION
npm install --registry=https://registry.npm.taobao.org
npm run $BUILD_PROFILE
zip -r dist-new.zip dist
cp dist-new.zip $WORK_DIR
cd $WORK_DIR
mv dist.zip dist.zip.$(date +%Y%m%d%H%M).bak || true
mv dist-new.zip dist.zip
rm -rf dist
unzip dist.zip

启动构建

Jenkins部署构建项目_第35张图片

构建成功

Jenkins部署构建项目_第36张图片

可能出现的问题

maven版本问题

之前安装的时候,使用了3.9.1版本的maven出现问题后,定位问题,发现是maven版本太高的问题,替换为3.8.3版本后,问题消失
Jenkins部署构建项目_第37张图片

nvm版本问题

问题表现

Jenkins部署构建项目_第38张图片

问题解决

用nvm安装对应版本的nodejs

# 安装对应版本的nodejs
nvm install 16.17.0

Jenkins部署构建项目_第39张图片

nvm安装

下载
wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.38.0.tar.gz
解压
mkdir -p /root/.nvm
tar -zxvf v0.38.0.tar.gz -C /root/.nvm
配置环境
vim ~/.bashrc

末尾追加

export NVM_DIR="$HOME/.nvm/nvm-0.38.0"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  
# This loads nvm bash_completion
# nodejs下载更换淘宝镜像
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
配置生效
source ~/.bashrc
查看nvm版本
nvm -v

在这里插入图片描述

你可能感兴趣的:(总结,jenkins,java,运维,node.js)