linux系统安装jenkins,并部署前端项目

348 阅读4分钟

前言

最近公司频繁的需要上线测试环境,进行项目测试,所以,打算在测试环境上部署jenkins,达到自动部署的目的。说干就干!

一、官网下载jenkins.war

二、linux上安装jenkins

  • 将jenkins.war上传到服务器上 如图放在了 /app目录下
  • 接下来启动jenkins
    我们先用官网给的命令,启动jenkins:
java -jar jenkins.war --httpPort=20401

浏览器打开服务器地址+端口号 20401,出现以下界面: 填写安装页面生成的密码后,点继续,安装推荐插件,会自动安装插件,等待即可: 插件安装完成后,进入设置管理员信息页面: 填写相关信息就完成jenkins启动了: 点击 保存并完成即可。

三、配置部署前端项目

1.前期配置信息

如果不进行配置,后面很容易会报错,所以我们可以先进入全局工具配置 进入之后,如果服务器没有安装jdk,可以选择自动安装

2.新建item

输入任务名称,选择第一项,自由工程,确定。

3.填写配置信息

  • 自己填写下项目描述
  • 源码管理
    填写git地址和账号信息 这里有报错
无法连接仓库:Command "git ls-remote -h https://gitee.com/xxx/financial_search.git HEAD" returned status code 128:
stdout:
stderr: fatal: Authentication failed for 'https://gitee.com/xxx/financial_search.git/'

解决办法:

There's no such executable whereis git in PATH: /sbin, /bin, /usr/sbin, /usr/bin.

表明没有安装git插件,需要安装git插件 点击图中管理插件按钮后,搜索git plugin,选择第一个安装git插件
在服务器输入

whereis git

打开"系统管理" -> "Global Tool Configuration" 全局工具配置-> "Git" -> "Path to Git executable",在此处填入"whereis git"查询出的地址(如上面"whereis git"的地址为"/usr/bin/git") 并保存。
再查看git处不再报错了。我们点击添加,输入自己git的拉取账号和密码 ID和描述 选填; 然后选中相对应的账号密码即可。 指定分支,就是你想部署的git库的分支。

4.构建shell

其实构建shell操作不复杂,就是我们正常手动操作的时候输入的命令,现在写成shell命令,自动执行。 选择shell命令后,在命令框里填入相关命令

为了方便复制,我把代码贴到这里

#!/bin/bash
echo $PATH
echo '安装依赖开始'
npm install
echo '安装依赖完成'
#!删除./dist目录下的所有文件,./dist目录即为当前jenkins工作区打包后的文件。
echo '删除之前构建的dist文件'
rm -rf ./dist 
#!执行打包命令
echo '开始构建'
npm run build
#!删除测试项目目录下的dist文件
rm -rf /xxx/dist/
#!copy jenkins构建的dist目录文件到测试项目目录dist下
cp -rf ./dist/  /xxx/dist/

这里需要了解的就是,我们目前就是在jenkins的项目目录下,我们先是拉取了git上的代码,然后和本地打包一样操作,先安装依赖,再打包。最后我们把打包出来的dist目录及其目录下的所有文件copy到前端项目部署的目录下(需要先删除原来的dist目录及其目录下的文件,相当于覆盖原dist目录)这样,前端项目部署的node服务(通过pm2启动)就秒更新成功了。

我们的测试项目部署也就到这里完成了!!!

我们找到对应的部署项目,直接点击构建就可以了。

5.问题和扩展

整体的部署不是很复杂,但是很多地方的配置会报各种错误,所以就需要根据不同的报错,来有针对性的解决。

下面的内容我会实时更新,把我在部署时碰到的问题和解决方法随时的更新出来。

1.我发现在jenkins执行npm run build时总是报错

查看日志后,发现有这么一行信息

build: `vue-cli-service build` 13 verbose stack Exit status 1

在jenkins相关项目的目录下

/root/.jenkins/workspace

直接npm run build 也是报错,不能正常打包,不能生成dist目录
google后,解释为package-lock.json的问题,这个也是我在平时本地打包时也会遇到的问题,所以把package-lock.json和node_modules/目录删除,再重新npm install和npm run build 就能正常打包生成dist文件了。jenkins也能正常部署了。

2.后台启动jenkins

之前使用

java -jar jenkins.war --httpPort=20401

启动服务,和服务器断开连接后,服务也跟着结束了。 所以我们要后台继续保持服务的运行,使用

nohup java -jar jenkins.war --httpPort=20401

就可以了。