CI工具的选择 - Jenkins的搭建与使用
warning 这篇文章距离上次更新于900天前,文中部分信息可能已失效,请自行甄别无效内容。
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,请参考以往的博客
如何使用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支持很多持续集成方案,大同小异,如有需要可查阅官网文档
插件安装
我主要是用来持续集成前端博客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 ../
- 构建后操作选择
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
自由风格项目
,进入项目详细配置页面,选择General
(默认已选中)GIT
- 输入仓库的
URL
- 验证方式根据需要自行选择(如Git仓库是证书验证才能拉取则需要在Jenkins的系统设置中添加凭据再返回这里选择证书验证)
- 选择仓库的分支
Branches
Poll SCM
- 注:2分钟查询一次仓库写法 -
*/2 * * * *
Provide Node & npm bin/ folder to PATH
- 此处根据需要选择你的构建步骤,我的构建机器由于是在本地运行,为了避免网络问题引起构建失败,我这里特意使用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 ../
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
这6步做完之后VUE的持续集成就完成了,享受每次Push之后自动更新的首页吧!
阅读:
462
分类:
编程语言
创建时间:
2019-08-14 12:05:07
更新时间:
2019-12-05 15:57:14
博文目录
[[replyMessage== null?"发表评论":"@" + replyMessage.m_author]]
account_circle
email
web_asset
textsms
评论列表([[messageResponse.total]])
[[messageItem.m_author]]
[[messageItem.m_author]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]]
[[subMessage.m_author]]
@
[[subMessage.parent_message.m_author]]
[[subMessage.parent_message.m_author]]
[[getEnviron(messageItem.m_environ)]]