利用Jenkins实现往github提交代码后自动部署打包

前言

本地写好代码后部署到服务器的tomcat上确实是一件麻烦的事情,须要先打成war包,再上传到服务器,再启动tomcat,确实是一件麻烦的事情,做为程序员岂能作这种重复且没有技术含量的事情,因而就想到了利用jekins来进行自动化,我只负责提交代码,别的就无论了,也是一件很棒棒的事情.java

事前准备

  1. maven(下载压缩包以后直接解压 再配置下环境变量 这是为了能够直接使用mvn clean install命令)
vim /etc/profile
//在这个文件末尾加上
export MAVEN_HOME=/root/maven3.4.5 
export PATH=$MAVEN_HOME/bin:$PATH
//保存后在命令行输入,启动配置
. /etc/profile
export下看下输出看看配置成没成功
复制代码
  1. jdk(我选择的是java8,反正安装教程网上一搜大把,这里不作赘述)
  2. git(yum -y install git 注意可能有git版本不够的问题 建议centos版本不够的仍是自行下载安装) 4.jenkins(建议你们仍是取jenkins官网去下载最新的版本,我是用rpm安装的,固然docker也能够,但docker进行某些配置的时候可能会遇到目录和路径的问题,须要挂载目录,实在让人脑袋疼)
rpm -ivh jenkins-2.175-1.1.noarch.rpm
vi /etc/sysconfig/jenkins
#修改用户和端口(这里不是再最后面添加了 是修改本来就有的值)
JENKINS_USER="root"
JENKINS_PORT="8888"
systemctl start jenkins
#这时候就能够直接访问IP+8888来进行安装啦 以后会跳出一个须要密码的界面 去提示的路径获取密码 而后选择建议安装 而后等待安装好插件就能够了
复制代码

5.mysql8(我是选择docker安装的方式 由于快 没装docker的能够去百度下怎么安装docker)mysql

docker pull mysql:8.0
# --restart-always: docker服务启动时,自动启动容器,而且当容器中止时,尝试重启容器。
# MYSQL_ROOT_PASSWORD: root帐号的密码
# --character-set-server --collation-server 默认数据库编码和默认排序
docker run --name mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root -v /var/lib/mysql/:/var/lib/mysql/ -d mysql:8.0 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
docker exec -it mysql /bin/bash
mysql -uroot -p root
#先更改ser表中用户为root的host字段,使他能够远程访问
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;
复制代码

正文

一切顺利的话,你会进入到以下的界面中(也许会有点点不同 由于我有新建任务了):git

要想实现自动化部署打包,首先jenkins得有权限从github那边拿到代码,而后每次提交代码github得可以通知到jenkins.前者咱们在github里面配置私有token,后者利用github的webhook来进行.程序员

1.配置token:github->setting->developer setting->personal access tokens->generate new token(而后scopes选择admin和admin:repo_hook就好了.cretae以后会返回给你一个token,本身先保存此token,若是丢失,以后再也没法找到这个token.请注意这个token 它很重要 也就是后文中出现屡次的secret text )github

2.配置webhook:(把图中的ip换成本身的就能够了 注意这里的github-webhook是须要你安装好了github插件才能够正确回调的,因此确认本身的插件安装好了,没有的话 jenkins中:系统管理-->插件管理-->可选插件 找到github插件并安装 )

3.确认jenkins中已安装好github插件,没有的话去插件管理里面去搜索安装,接下来去配置认证. 系统管理 --> 系统设置 --> GitHub Server --> 添加web

注意secret填写以前github那边获取到的token,id能够不填,描述就洒洒水啦. sql

设置完成后,点击TestConnection,提示Credentials verified for user xxxx, rate limit: xxx,则代表有效。docker

4.系统管理-->全局工具管理->设置好你以前安装好的jdk git maven路径.shell

5.固然是最激动人心的环境 新建任务(选择一个自由风格的任务): 1).填写项目描述和项目主页(github上的地址,注意不是下载的git地址,是项目主页,github.com/本身用户名/项目名的那个)数据库

2).源码管理(Credentials 选择本身以前建立好的那个,源代码浏览器配置以后能够在jenkins查看github的代码,最Additional Behaviours->check out to an sub-directory 是把项目下载到这个文件夹里面 下面配置路径的时候要注意)
3).构建触发选择当接收到github hook的时候 构建环境选择使用secret text(也就是以前github里面的那个token)
4).构建的操做,执行shell命令,注意操做仍是经过sh脚原本完成的

sh脚本(注意win状态下编辑可能会产生^M的状况 用vim-b来进行查看并修改) 附上

5).构建后操做选择set github status就能够啦

而后提交代码享受自动打包部署的快感吧. (ps:本人打包的时候老是报 mvn clean install的错误 查找屡次后发现是本身配置的war包打包插件的路径配置的不对,折腾了很长时间,你们有报错的能够看任务的输出日志来定位查找状况)

才疏学浅 错漏之处在所不免

相关文章
相关标签/搜索