title | categories | tags | date | |||
---|---|---|---|---|---|---|
使用 Jenkins 持续集成 |
|
|
2018-05-31 11:15:56 -0700 |
私有项目(INSUITE CMS),使用 GitHub enterprise。
首先持续集成工具(CI),不得不选择 Jenkins。 Travis CI 集成私有项目需要付费。
但是 Jenkins 画面又太丑了,实在无法忍受。折中方法,使用 Blue Ocean Plugin,这是一个稍微现代化一点的 UI 界面。
我使用 jenkinsci/blueocean 的 docker 镜像运行 jenkinsci 优点,省去了安装 JRE 的麻烦。
- aws 建一个 centos7
- 安装 docker
- 启动 Jenkins
- Jenkins 安装 GitHub plugin(blueocean 默认安装)
- 为你的项目添加 Jenkinsfile
- Jenkins 界面中设置 GitHub enterprise repository(这里需要 Personal access tokens)
- GitHub enterprise repository 设置 webhook,测试一下 webhook
- git push 一条 commit,查看 Jenkins 是否工作
aws 创建一个 centos7,并安装 docker。 centos7 安装 docker 方法
为 ec2 设置公网 IP(为了与 GitHub enterprise 互联)。 方法
方法:
docker run \
--rm \
-u root \
-p 8001:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--add-host=stainless.dreamarts.co.jp:10.0.128.144 \
-v "$HOME":/home \
-d \
jenkinsci/blueocean
记录: 这里有两个配置是专为 CMS 项目添加的。
-p 8001:8080
// 将 8080 端口指定到 8001 端口,
// 因为公司 AWS ec2 只开放 8001 端口。
--add-host=stainless.dreamarts.co.jp:10.0.128.144
// 为了让 jenkinsci 能访问 Github,需要添加 GitHub enterprise 的 IP 地址。
写一个最简单的
pipeline {
agent {
docker {
image 'node:8'
}
}
environment {
CI = 'true'
}
stages {
stage('Install') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
}
}
实际使用的: https://github.com/ThaddeusJiang/parcel-react-starter
- jenkinsci 和 GitHub enterprise 不能互联,因为不在同一个内网。
- jenkinsci 后台运行,使用 docker run -d 。
- docker 启动时设置 GitHub enterprise 的 IP,使用 docker run --add-host
- Notification,用来发送测试结果。