刚到新公司,这边居然是前端打包zip文件发给运维部署,感觉十分不方便,像我这种bug多的开发,需要经常部署一下的,为了不被运维打,搭一个jenkins自动化部署,记录一下过程。
大致过程就是,本地代码push到远程仓库,服务器端Jenkins上选择目标分支或tag进行构建,当然也可以监听push动作自动构建,执行构建任务,拉取代码,执行编译打包,将编译产物部署到web项目工作目录
。
一、服务器配置
1.安装java环境
sudo yum install java
查看版本号,若有版本号输出,表示安装成功
java -verson
2.安装git
sudo yum install git
查看版本号若有版本号输出,表示安装成功
git -version
安装 Jenkins
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum -y install jenkins
启动Jenkins
service jenkins start
我们在浏览器输入http://服务器地址:8080就能访问到入门页面了,如果不能访问检查8080端口是否被占用
配置Jenkins权限
现在的 Jenkins如果执行shell脚本,还不具备相应权限。需要进行如下操作
sudo vim /etc/sysconfig/jenkins
#编辑状态中
JENKINS_USER="root"
之后,修改 Jenkins 相关文件夹用户权限
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
service jenkins restart
二、配置Jenkins
浏览器输入http://服务器地址:8080就能访问到入门页面, 按照提示将密码复制粘贴,点击继续
安装插件,直接下一步
安装完插件之后要创建用户,创建完成后点击保存并完成
点击开始使用
进入系统配置
选择插件管理
在可选插件列表搜索nodejs 和Git Parameter,并安装
系统管理 ->全局工具配置 ->新增nodejs 或者填写你已经安装的服务器node路径
如果是jenkins和网页服务器不在同一个服务器,还需要额外配置ssh
系统管理 ->插件管理>可选插件->Publish over SSH,我这里是已经安装了
系统管理 ->系统配置>填写目标服务器信息
创建第一个新任务
进入首页点击新建Item或者开始创建一个新任务,开始我们的第一步
输入任务名,选择构建一个自由风格的软件项目
我这里选择参数化构建过程,选择分支和tag选择, 每次手动构建,需安装Git Parameter,漏装找不到 Git参数
高级 -> 快速过滤也勾上,分支多的时候,搜索比较快找到目标
配置git仓库输入仓库地址 ,添加凭据,http的就填账号密码,ssh的就填写证书,没什么好说的,知道分支 填写我们的构建参数$TAG;
构建环境选择我们配置的node12.4.0就行
构建命令
#!/bin/bash
node -v
npm -v
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install
npm run build
#如果是jenkins和服务器同在一个服务器 直接可以在这里 把文件cp到目标文件夹。
#\cp -r -a ./* /home/jenkins/test
不在同一个服务器 继续添加构建后操作
测试一下,选择分支开始构建
/var/www/ngadmin 目录下已经有文件了,构建成功
剩下配置ngnix服务相关,找运维or找教程。
@end