实战jenkins多分支流水线 自动化部署
集中管理jeknisfile
一、安装jenkins相关插件,我这里有完整的插件包
1、插件下载
切记: 每次改动插件前先备份 jenkins home目录下的plugins
不要问为什么,会给你节省很多时间
二、创建多分支流水线pipeline
1、新建
2、指定多分支流水线使用的jenkinsfile
三、创建公用Jenkinsfile
1、新建 Grovy file
2、编写自动化脚本
3、脚本代码
#!/usr/bin/env groovy
import groovy.transform.Field
@Field def job_name=""
node()
{
// 获取当前job名称。也可以按需自定义
job_name="${env.JOB_NAME}".replace('%2F', '/').split('/')
job_name=job_name[0]
def rootDir = pwd()
echo "${rootDir}--${job_name}--${JOB_NAME}------${env.JOB_NAME}-----${BRANCH_NAME}-----${env.BRANCH_NAME}"
// 自定义workspace
workspace="workspace/${job_name}/${env.BRANCH_NAME}"
ws("$workspace")
{
dir("pipeline")
{
// clone Jenkinsfile项目
checkout scmGit(branches: [[name: '*/dev']], extensions: [], userRemoteConfigs: [[credentialsId: 'git-root', url: 'https://gitlab.you.com/gitlab/devops/pipeline.git']])
// 根据job name、构建分支,自动加载对应的Jenkinsfile
def check_groovy_file="Jenkinsfile/${job_name}/${env.BRANCH_NAME}/Jenkinsfile"
load "${check_groovy_file}"
}
}
}
注: 上述脚本 这段需要改成自己实际的地址配置
checkout scmGit(branches: [[name: '*/dev']], extensions: [], userRemoteConfigs: [[credentialsId: 'git-root', url: 'https://gitlab.you.com/gitlab/devops/pipeline.git']])
credentialsId: 'git-root' 改成你实际拉取代码的密钥账号
url: 'https://gitlab.you.com/gitlab/devops/pipeline.git' 改成你实际的jenkinsFile(针对不同项目的) 路径
举列说明:
创建一个集中管理jenkinsfile的仓库,也是上面公用jenkinsfile url需要拉取的地址
如果需要这些脚本就前往下载
创作不易,请多多支持点赞!!!