linux 安装 Jenkins 实现自动获取代码 打包前端代码
Jenkins
Jenkins
并不是编程语言,只是一个工具,用 java 编写的一个工具,所以需要java
环境
他可以帮我们实现监听代码的更新,并且执行自动化流程(比如打包 vue 文件,打包 react 文件,或者后端的文件编译等等)
以下的步骤均在centos 7
环境下执行,所以有些包的安装使用的是 yum
源。如果用的是 ubuntu 或者其他的 linux 发行版需要自行查阅~
安装 Jenkins
- 先检查 java 环境是否生效
java -verison
刚好我的 java 环境(openjdk)
就是 1.8.0
如果没有安装 java 环境的,可以看下这篇 linux 安装 jdk1.8 详细教程
或者直接 yum install java
- 添加镜像源(以 centos 为例,ubuntu 大同小异,不过文件是不一样的,自行区分咯~)
# 添加镜像源
sudo wget -O /etc/yum.repos.d/jenkins.repo http://jenkins-ci.org/redhat/jenkins.repo
# 导入公钥
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.k
添加完成之后直接使用 yum 命令安装 Jenkins:
yum install jenkins -y
安装过程非常的久。我安装的时候第一次安装还失败了,因为网络实在太慢了,如果可以科学上网的搞起来~
yum 包安装完了,可是还有点小插曲,没搞懂原因,不过如果遇到这样的:jenkins 的公钥未被安装
那我们就这样:
yum install jenkins -y --nogpgcheck
--nogpgcheck
意思就是跳过 公钥的验证- yum 源已经把包下载过一次了,所以再次执行这个是很快的,无须重复等待了
- 安装完成后,
注意下配置在开始启动
为啥要强调这个呢,因为免得等下一套流程下来发现目录不合理,那就不好玩了~
修改配置文件:sodo vim /etc/sysconfig/jenkins
重要的配置讲讲:
JENKINS_HOME="/var/lib/jenkins/"
JENKINS_USER="jenkins"
JENKINS_PORT="9999"
-
JENKINS_HOME
jenkins 的工作区,以后 jenkins 安装的插件,改的配置都在这个目录下。如果对软件文件存放位置有严格要求的这个路径先改,正常来说打包后的文件也会在这个目录下。也可以设置指定的目录,后面会讲
-
JENKINS_USER
涉及到 linux 的用户组的概念。因为要对文件进行管理,所以到时候文件的所有者是要改成jenkins
的。 -
JENKINS_PORT
这个默认是 8080 端口。我改成了 9999.因为我本地的 8080 端口早就被用了。改成 9999 后,服务器的 9999 端口记得放行,不然访问不了
- 启动服务
jenkins 的命令就只有几条
作用 | 命令 |
---|---|
启动 | service jenkins start |
关闭 | service jenkins stop |
重启 | service jenkins restart |
运行 service jenkins start
看到输入
然后打开浏览器 192.168.0.166:9999
,
- 因为我的 centos 是局域网的机子,所以我的 ip 是 192.168.0.166。你们如果是云服务器,应该是你们对应的公网 IP
- 9999 是因为我在配置文件改的 9999 端口。默认没改的话就是 8080
第一次打开需要输入密钥
密钥就在图中红色框框的路径里面
cat /var/lib/jenkins/sec..... # (不想写了。好长)
复制进去就好
-
创建用户和安装插件
- 创建帐号就没必要多说了。照填,下一步
- 安装插件我用的是默认推荐的插件,毕竟新手入门
- 网络不太好,安装插件装了有半小时,有些 github 的插件我最后还安装不了,不过我没用到 github,所以就算安装失败我也跳过了~
- 安装对应的环境
前面有提到说要打包 vue 项目,打包 react 项目,那前提就是 node 环境了。在推荐的插件中并没有 node。所以我们得自己找到 node 插件:如图(这东东半中文半英文的,在侧边栏找到)
找到 nodejs。安装后,重启下即可
- 全局的配置。配置下 node 环境
其他的环境同理,我就不一一列举了,我只是个小前端~
- 开始创建项目了!
- 回到首页,点击 新建 Item
- 记得选择 Freestyle project 自定义项目
- 来到了配置页。一共有
一点点讲把~
general 看不懂,过~
源码管理 >
填写仓库地址,如果是私有仓库就会看到像我一样的错误警告,下面的Credentials
就可以添加用户帐号,或者用 ssh 密钥登陆。都是 git 基础了
选择 git 代码的目录
如果不勾选的话,默认就去了/var/lib/juxxxx
的目录去了。或者就会把代码拉到配置文件的工作区里面去
我这边还是指定了一下本地仓库目录:
> 执行分支
默认填的是 master。就是监听 master 的更新,如果删除了。那就是监听全部分支更新,然后执行构建流程
构建触发器
触发远程构建 (例如,使用脚本)
没用过~Build after other projects are built
在其他项目构建后执行该项目Build periodically
定期执行GitHub hook trigger for GITScm polling
从 gihub 的hook
钩子函数触发执行(这是 整个自动化流程的精髓,不过由于我的 centos 是内网,玩不了这个。后续玩到了在更新)Poll SCM
定时执行 。看下介绍都懂了
因为上面选项没有一个是我想要的,想要的我却用不到,我就不细究了。如果用的是 gitlab 还得安装 gitlab 插件这里才会有 gitlab 的选项
构建环境
前端才用到,刚才选择的 node 版本备注,在这里就用的上了。如果还有其他环境需要配置的,也是这里配置
构建
这是整个插件的精髓 2
。自动运行脚本
执行一系列的命令行完成操作,我这边配置的就是打包我的 vue 项目,因为我 vue 项目打包路径直接就到对应目录去了,所以我少了复制的步骤,这里因人而异哈
cd /www/wwwroot/test/zbshop/vue # 先进入到我的项目目录
node -v #检测node版本(此条命令非必要)
npm -v #检测npm版本(此条命令非必要)
npm install #安装项目中的依赖
npm run build #打包
构建后操作
没用到,过~
其实和构建差不多的,就是执行 linux 命令
点击保存就 OK 了
执行流程
回到首页
点击创建的项进去,选择 Build Now。他就会开始执行拉代码,然后编译代码~
在左下角有个 #1 到 #5 就是代表每次运行的日志
点击进去
可以看到构建流程
完结
安装 jekins 就到这里结束了,简单介绍了一些创建项目和构建项目,不过因为没外网 IP。没能试下hook
功能真是太可惜了,hook
原理就是 git 那边收到新的提交,就会给 jekins
发送一个信号,让他自动执行获取代码,构建代码的流程,从而自动化运维,不用每次都自己登陆服务器拉代码