jenkins多分支流水线使用
背景
需实现如下功能:
1、可通过GitLab的Webhooks触发jenkins进行构建。
2、项目中多分支的内容进行相对应的构建,如:开发分支内容构建至开发环境;测试分支构建结果进行存储,等待测试人员进行手动更新;线上分支构建结果进行存储,等待负责人进行手动更新。
一、创建jenkins任务
1、新增任务
2、输入任务名称、选择类型
3、输入系统别名、选择源
4、配置git源信息
5、设置项目中Jenkinsfile文件的名称。
当jenkins检测到分支内容发生变化后,将读取根目录下该文件的内容,进行后续操作。
6、没必要存储很多旧的构建记录
7、上诉配置完成后,点击保存即可。
二、创建jenkinsfile
1、项目中创建jenkinsfile文件
在项目根目录下创建【by Jenkinsfile】时填写的名称,本示例中填写的是(jenkinsfile)
2、jenkinsfile文件内容
jenkinsfile中使用以下模板,其中除了【变量配置处】的路径需要修改外,还需要修改【secretToken】,【secretToken】作为gitlab触发Webhooks的安全凭证,可为任意值。
pipeline {
agent any
environment{
// 变量配置处
ENV_DEV_PATH = "/web/front-prison/assessment-management/" //开发dist放置开发环境位置
ENV_MASTER_PATH = "/data/master/wisdom-jail/v1.0/assessment-management" //线上环境dist代码放置位置
ENV_TEST_PATH = "/data/test/wisdom-jail/v1.0/assessment-management" //测试环境dist代码放置位置
}
triggers {
//配置gitalb的Webhooks信息
gitlab(triggerOnPush: true, triggerOnMergeRequest: false, branchFilterType: 'All',secretToken:"goiwnqoih12342134h121235o")
}
stages {
stage('dev-build') {
when {
branch "dev"
}
steps {
sh 'npm config set registry https://registry.npm.taobao.org'
sh 'npm i node-sass --unsafe-perm --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/'
sh 'npm install --unsafe-perm'
sh 'npm run build:238'
//使用SSH文件传输
sshPublisher(publishers: [sshPublisherDesc(configName: '开发服务器', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: env.ENV_DEV_PATH, remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'dist/**')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
}
}
stage('master-build') {
when {
branch "master"
}
steps {
sh 'npm config set registry https://registry.npm.taobao.org'
sh 'npm i node-sass --unsafe-perm --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/'
sh 'npm install --unsafe-perm'
sh 'npm run build:76'
sh 'cp -rf dist '+env.ENV_MASTER_PATH
}
}
stage('test-build') {
when {
branch "test"
}
steps {
sh 'npm config set registry https://registry.npm.taobao.org'
sh 'npm i node-sass --unsafe-perm --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/'
sh 'npm install --unsafe-perm'
sh 'npm run build:76'
sh 'cp -rf dist '+env.ENV_TEST_PATH
}
}
}
}
三、配置GitLab中的Webhooks
1、查看jenkinsfile配置结果
2、查看开发分支的Webhooks地址
3、填写GitLabs触发构建地址和安全凭证
四、测试结果