自动部署

  • Github上有一个项目

  • Github 上配置jenkins 的webhook地址

  • Github 上创建一个access token

创建access token

settings > Developer settings >Personal access token

点击底部的”Generate token”按钮,就能产生一个新的access token,将此字符串复制下来,后面jenkins任务中会用

配置 webhook

进入仓库

webhook是通知Jenkins时的请求地址,用来填写到GitHub上,这样GitHub就能通过该地址通知到Jenkins; 假设Jenkins所在服务器的地址是:192.168.0.1,端口为8080,那么webhook地址就是http://192.168.0.1:8080/github-webhook

上述地址必须是外网也能访问的,否则GitHub无法访问到Jenkins

配置 jenkins

系统管理 > 系统设置

弹出的页面中,"类型"选择"Secret text","Secret"填入前面在GitHub上生成的Personal access tokens,Description随便写一些描述信息,如下图:

"Credentials" 选择刚才添加的 "描述" ,点击右下的"Test connection"

Github项目的主页和仓库地址

地址栏的是项目主页 eg:https://github.com/ainiok/book

仓库地址是: https://github.com/ainiok/book.git

仓库地址一定是要https 不能是ssh

新建任务

构建一个自由风格的软件项目

源码管理 选择git, 配置如下

构建触发器选择 GitHub hook trigger for GITScm polling

构建 > 添加构建步骤 > 执行shell

我的是构建gitbook项目,shell如下

gitbook install
gitbook build
/bin/cp -rf /var/lib/jenkins/workspace/book/* /var/www/book/

每次往github push代码到master 的时候就会自动构建

#遇到的问题

在线上的时候shell执行失败

更改jenkins运行身份

vim /etc/sysconfig/jenkins

# 修改 $JENKINS_USER="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

重启服务

# 重启Jenkins(若是其他方式安装的jenkins则重启方式略不同)
systemctl restart jenkins
# 查看Jenkins进程所属用户
ps -ef | grep jenkins
# 若显示为root用户,则表示修改完

构建 Maven风格项目时

  • 错误 jenkins Error performing command: git ls-remote -h

###安装Maven

下载地址:  http://maven.apache.org/download.cgi

添加到环境变量

 vim /etc/profile
 
 export MAVEN_HOME=/usr/local/maven
 export PATH=$PATH:$MAVEN_HOME/bin

执行 source /etc/profile 让配置生效

查看版本 mvn -version

git目录啥的(忘记了,有遇到的可以下方留言)

使用命令whereis git可以查看git安装目录

安装 Phing (构建PHP项目) 待定补充,还没操作过,有经验的可以联系我

最后更新于