作者:E4b9a6, 创建:2019-04-03, 字数:3764, 已阅:52, 最后更新:2019-04-03
CI工具有不少选择,像 Jenkins
、Codeship
、Travis
CI
、Circle
TeamCity
都是比较有名的CI工具
无论是个人还是团队使用CI工具都能有效提高代码迭代速度,实现更快更自动化的发布
Jenkins是一个开源的自动化构建工具,用于持续集成和持续交付(CI/CD)的软件开发过程,通过不同的插件来支持不同的开发工具与技术
通常Jenkins可以搭配Git Flow来实现自动化构建、自动化测试和自动化部署流程
学习Jenkins的工作原理能有效提升软件发布的效率
访问Jenkins - Build great things at any scale 官网,我们可以快速找到下列安装教程
官方最低硬件配置要求
软件依赖
此次安装基于Cent7OS
首先安装依赖 java与jdk
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
创建用于运行Jenkins的用户
sudo useradd jenkins
创建存放Jenkins文件夹
mkdir /home/jenkins/jenkins
chown jenkins:jenkins /home/jenkins/jenkins
cd /home/jenkins/jenkins
下载Jenkins
sudo -u jenkins wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
配置JENKINS_HOME
的位置,如跳过,则Jenkins会默认$HOME/.jenkins
作为默认目录
sudo mkdir /var/lib/jenkins
sudo vim /etc/profile
JENKINS_HOME=/var/lib/jenkins
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JENKINS_HOME
刷新环境设置
source /etc/profile
运行Jenkins
sudo -u jenkins /usr/bin/java -jar jenkins.war --httpPort=8082 --webroot=webroot/ --pluginroot=pluginroot/
查看默认密码
cat /user/.jenkins/secrets/initialAdminPassword
采用systemd
方式存储到后台运行,编辑/etc/systemd/system/jenkins.service
[Unit]description=Jenkins
After=syslog.target network.target
[Service]
ExecStart=/usr/bin/java -jar /home/jenkins/jenkins/jenkins.war --httpPort=8082 --webroot=/home/jenkins/jenkins/webroot/ --pluginroot=/home/jenkins/jenkins/pluginroot/
User=jenkins
Type=simple
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
启动Jenkins并设置后台启动
sudo systemctl start jenkins
sudo systemctl enable jenkins
我主要是用来持续集成前端博客vue单页应用,此处举例VUE的集成,Jenkins支持很多持续集成方案,大同小异,如有需要可查阅官网文档
登录Jenkins管理系统首页,依次打开系统管理
-管理插件
并搜索安装如下插件
回到管理系统首页,依次打开 系统管理
-全局工具管理
-点击新增NodeJS
根据需要选择NodeJS的版本
在管理系统首页,选择系统管理
-系统设置
-Publish Over SSH
-新增
-SSH Server
,分别填入如下资料
创建Jenkins任务
自由风格项目
,进入项目详细配置页面,选择General
(默认已选中)GIT
URL
Branches
Poll SCM
\*/2 \* \* \* \
*Provide Node & npm bin/ folder to PATH
# 安装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
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之后自动更新的首页吧!