CI工具的选择 - Jenkins的搭建与使用
warning 知悉:这篇文章距离上次更新超过454天,文中部分信息可能已失效。
CI工具有不少选择,像Jenkins、Codeship、Travis CI、Circle CI、TeamCity都是比较有名的CI工具,无论是个人还是团队使用CI工具都能有效提高代码迭代速度,更快的发布周期
搭建
参考官网文档
访问Jenkins - Build great things at any scale 官网,我们可以快速找到下列安装教程
硬件配置
- 最低256MB内存,推荐512M内存以上
- 10GB的硬盘驱动 软件依赖
- Java 8 (either a JRE or Java Development Kit (JDK) is fine)
- 可选:Docker (navigate to Get Docker at the top of the website to access the Docker download that’s suitable for your platform)
环境准备
首先安装依赖 java与jdk
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
创建存放Jenkins文件夹
mkdir /store/devlop/jenkins
下载Jenkins
cd /store/devlop/jenkins
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
可选:配置Jenkins_home路径,此步骤如跳过,则运行Jenkins时会在用户目录下生成.jenkins目录作为默认目录(随着时间使用逐渐变大)
vim /etc/profile
# 添加JENKINS_HOME路径
JENKINS_HOME=/store/devlop/jenkins/jenkins_home/
# 在最后导入JENKINS_HOME
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JENKINS_HOME
# 保存并退出文件后刷新环境设置
source /etc/profile
运行Jenkins
可以通过 java -jar jenkins.war --help 获取运行参数帮助,此处考虑如下几个参数
- httpPort:对外端口
- webroot:额外的扩展war包存储位置
- pluginroot:额外的插件扩展存储位置
运行Jenkins
java -jar jenkins.war --httpPort=8082 --webroot=webroot/ --pluginroot=pluginroot/
查看默认密码
cat /user/.jenkins/secrets/initialAdminPassword
后台运行
如何使用supervisor,请参考以往的博客
supervisord脚本
[program:jenkins]
command=java -jar /store/devlop/jenkins/jenkins.war --httpPort=8082 --webroot=/store/devlop/jenkins/webroot/ --pluginroot=/store/devlop/jenkinspluginroot/
environment=JENKINS_HOME=/store/devlop/jenkins/jenkins_home/
user=root
stopsignal=INT
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/var/log/supervisor/jenkins.error.log
stdout_logfile=/var/log/supervisor/jenkins.output.log
使用
我主要是用来持续集成前端博客vue单页应用,此处举例VUE的集成,Jenkins支持很多持续集成方案,大同小异,如有需要可查阅官网文档
插件安装
登录Jenkins管理系统首页,依次打开“系统管理” -- “管理插件” 并搜索安装如下插件
- Publish Over SSH - 用于推送生成包到远程服务器上的插件
- nodejs - 用于使用npm安装生成vue项目
回到管理系统首页,依次打开“系统管理” -- “全局工具管理”,拉到底部
- 点击新增NodeJS,并根据需要选择版本号
配置远程服务器连接
在管理系统首页,一次打开“系统管理” -- “系统设置”,找到“Publish Over SSH”,点击新增,然后点击SSH Server
- Passphrase:密码
- Path to key:如果你的服务器需要密钥输入,则在此输入你的密钥位置,当然前提是你要先在Jenkins服务器上指定的路径准备好密钥
- Key:可以将Key粘贴到这,不过我没有试过
- Name:服务器名称
- Hostname:服务器IP
- Username:服务器用户名
- Remote Diretory:默认远程服务器路径
- 配置结束后可点击 Test Configuration测试是否连接成功
创建Jenkins任务
- 点击Jenkins(回到首页点击创建),并选择 自由风格项目,进入项目详细配置页面,选择General(默认已选中)
- 源码管理方式选择 GIT
- 输入仓库的 URL
- 验证方式根据需要自行选择(如Git仓库是证书验证才能拉取则需要在Jenkins的系统设置中添加凭据再返回这里选择证书验证)
- 选择仓库的分支 Branches
- 触发器选择 Poll SCM
- 注:2分钟查询一次仓库写法 - */2 * * * *
- 构建环境选择 Provide Node & npm bin/ folder to PATH
- 构建步骤增加1个
- 此处根据需要选择你的构建步骤,我的构建机器由于是在本地运行,为了避免网络问题引起构建失败,我这里特意使用cnpm进行构建
# 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org # 使用cnpm cnpm install # 打包vue npm run build # 以下三步用于创建上传到服务器的压缩包 cd dist rm -rf test.tar.gz tar -zcvf test.tar.gz * cd ../
- 此处根据需要选择你的构建步骤,我的构建机器由于是在本地运行,为了避免网络问题引起构建失败,我这里特意使用cnpm进行构建
- 构建后操作选择 Send build artifacts over SSH
- 选择在配置远程服务器连接里面配置好的服务器,之后填写Transfers信息
Transfer Set Source files : dist/test.tar.gz Remove prefix : dist Remote Directory : (不填) Exec command : cd /home/chancel/ rm -rf one_view/ mkdir one_view/ mv /tmp/test.tar.gz one_view/ cd one_view/ tar -zxvf test.tar.gz rm -f test.tar.gz
- 选择在配置远程服务器连接里面配置好的服务器,之后填写Transfers信息
这6步做完之后VUE的持续集成就完成了,享受每次Push之后自动更新的首页吧!
阅读
- 79
分类
- 编程语言
创建于
2019-08-14 12:05:07
阅读 - 79
分类 - 编程语言
创建于 2019-08-14 12:05:07
博文目录
[[replyMessage== null?"发表评论":"@" + replyMessage.m_author]]
account_circle
email
web_asset
textsms