Jenkins部署构建项目

背景

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

需要先安装好Jenkins

我之前有一篇安装Jenkins文章,有需要的可以去看一下。
在这里插入图片描述

插件安装

系统管理

在这里插入图片描述

插件管理

在这里插入图片描述

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

在这里插入图片描述

中文设置插件

在这里插入图片描述
安装好后去系统管理中设置
在这里插入图片描述
找到刚刚的插件输入zh_CN,点击应用就可以了,如果不行,进行jenkins的重启。
在这里插入图片描述

Maven插件

在这里插入图片描述

Jenkins部署前清空原有workspace

输入workspace cleanup
在这里插入图片描述
重启Jenkins后就可以看到对应功能
在这里插入图片描述

安装git插件

在这里插入图片描述

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

全局配置

maven配置

在这里插入图片描述

Jdk设置

在这里插入图片描述

Git设置

在这里插入图片描述

Maven

在这里插入图片描述

Git权限配置

Liunx生成公钥

# 中间内容随意,只是作为名词管理
ssh-keygen -C "xxxxx@xxxxx.com" 

查看公钥

cat ~/.ssh/id_rsa.pub

在这里插入图片描述

Gitee添加公钥

在这里插入图片描述

首次需要确认并添加主机到本机SSH可信列表
ssh -T git@gitee.com

在这里插入图片描述

设置后端流水线

命名流水线

根据流程去命名流水线,创建一个maven项目的流水线。
在这里插入图片描述

选择丢弃版本

在这里插入图片描述

设置git地址和分支

一定上面对应公钥的账号一定要有下面代码库的权限,否则会报权限异常。
在这里插入图片描述

构建触发器

这次选择的是手动创建,也可以在下面选择push代码时,进行流水线构建。
在这里插入图片描述

构建环境

在这里插入图片描述

Build

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

在这里插入图片描述

Post Steps

在这里插入图片描述

其中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

启动流水线

找到要启动的项目

在这里插入图片描述

启动构建

在这里插入图片描述
下面生成新的构建记录
在这里插入图片描述

项目构建成功

其中有编译过程,将旧版本jar包改名和运行启动脚本。
在这里插入图片描述

构建前端代码流水线

前置要求

先在服务器上面安装nvm

用来管理nodejs
在这里插入图片描述

下载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;
        }
 }

命名流水线

在这里插入图片描述

General

在这里插入图片描述

源码管理

在这里插入图片描述

构建环境

在这里插入图片描述

构建

在这里插入图片描述

#!/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

启动构建

在这里插入图片描述

构建成功

在这里插入图片描述

可能出现的问题

maven版本问题

之前安装的时候,使用了3.9.1版本的maven出现问题后,定位问题,发现是maven版本太高的问题,替换为3.8.3版本后,问题消失
在这里插入图片描述

nvm版本问题

问题表现

在这里插入图片描述

问题解决

用nvm安装对应版本的nodejs

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

在这里插入图片描述

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

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值