准备Jenkinsfile配置文件
准备公共配置文件
新建远程仓库,文件目录结构:
1 2 3 4
| # 资源文件 |-- resources # 执行脚本文件 |-- vars
|
新建配置文件build.groovy
,放在vars
文件夹下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| #!groovy
def call(Map map) {
pipeline { agent any
environment { APP_NAME = "${map.APP_NAME}" APP_PORT = "${map.APP_PORT}" REMOTE_HOST = "${map.REMOTE_HOST}" REPO_URL = "${map.REPO_URL}" BRANCH_NAME = "${map.BRANCH_NAME}" STACK_NAME = "${map.STACK_NAME}" }
stages { stage('获取代码') { steps { git([url: "${REPO_URL}", branch: "${BRANCH_NAME}"]) } }
stage('编译代码') { steps { withMaven(maven: 'maven 3.6') { sh "mvn -U -am clean package -DskipTests" } } }
stage('构建镜像') { steps { sh "cp ./target/*.jar ./" sh "docker build -t ${APP_NAME}/${BRANCH_NAME}:1.0-SNAPSHOT ." } } stage('运行镜像') { steps { sh "if docker ps -a | grep ${APP_NAME}-${BRANCH_NAME};\n then docker rm -f ${APP_NAME}-${BRANCH_NAME}\n echo Remove Docker Container: ${APP_NAME}-${BRANCH_NAME}\n fi" sh "docker run -d -p ${APP_PORT}:${APP_PORT} --name ${APP_NAME}-${BRANCH_NAME} ${APP_NAME}/${BRANCH_NAME}:1.0-SNAPSHOT" } }
} } }
|
配置Jenkins公共Jenkinsfile库的地址
进入Jenkins的系统管理的系统配置,找到Global Pipeline Libraries
,配置远程仓库地址:
准备程序Jenkinsfile配置文件
程序根目录新建Jenkinsfile文件,填写配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #!groovy
library 'aptst-pipeline-library' def map = [:]
map.put('APP_NAME','aptst-config-server')
map.put('APP_PORT','3344')
map.put('REMOTE_HOST','xxx.xxx.xxx.xxx')
map.put('REPO_URL','XXX')
map.put('BRANCH_NAME','master')
map.put('STACK_NAME','XXX')
build(map)
|
Blue Ocean
首先进入Jenkins的Blue Ocean页面,在Jenkins页面左边找到按钮或输入网址http://<jenkins address>/blue
创建Pipeline
点击创建流水线
:
选择代码仓库,根据你远程仓库选择对应的:
添加GitHub服务器:
选择仓库然后点击创建流水线:
完整步骤图:
配置webhook
首先让我们看看 Github官方 关于Github webhooks的解释:
Webhooks allow you to build or set up integrations which subscribe to certain events on GitHub.com.
中文意思就是: webhook允许您构建或设置订阅GitHub.com上某些事件的集成。 通过webhook,我们就可以实现自动化部署。
进入项目GitHub仓库地址,进入**settings
,点击 hook
,再点击Add webhook
**:
填写Jenkins接收事件地址**Payload URL
**:
1
| http://<Jenkins address>/github-webhook/
|