jenkins创建流水线,基于gitlab与Jenkinsfile
1、创建新的项目2、填写项目英文名称,并且选择多分支流水线3、填写中文名称以及描述4、设置Branch Sources,选择Git5、填入仓库地址,这里使用http协议的地址,并选择拥有Maintainer权限的令牌6、选择需要发选的分支通过正则表达式过滤,这里选择只发现develop和test分支,正则表达式“(develop|test)”,也可以根据自己的实际需要来使用其他分支7、如果没有出发
·
1、创建新的项目
2、填写项目英文名称,并且选择多分支流水线
3、填写中文名称以及描述
4、设置Branch Sources,选择Git
5、填入仓库地址,这里使用http协议的地址,并选择拥有Maintainer权限的令牌
6、选择需要发选的分支通过正则表达式过滤,这里选择只发现develop和test分支,正则表达式“(develop|test)”,也可以根据自己的实际需要来使用其他分支
7、如果没有出发条件,这里配置在30分钟内自动出发一次
8、其他选项保持默认不变,最后保存即可
9、构建结果
10、在项目的develop跟test分支中添加Jenkinsfile文件用于jenkins的扫描构建
pipeline {
agent any
environment {
COMMIT = sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
}
stages {
stage('Build Info') {
steps {
script {
sh "echo BRANCH_NAME : ${env.BRANCH_NAME}"
sh "echo COMMIT : ${env.COMMIT}"
sh "echo WORKSPACE : ${env.WORKSPACE}"
sh "echo BUILD_NUMBER : ${env.BUILD_NUMBER}"
sh "echo JOB_NAME : ${env.JOB_NAME}"
}
}
}
stage('Develop') {
when { branch 'develop' }
steps {
sh """
rsync --exclude='.git' -r ./ {项目目录}
docker restart {容器名}
docker exec {容器名} bash -c 'cd {项目目录} ; {其他命令}'
docker exec openresty nginx -s reload
"""
}
}
stage('Test') {
when { branch 'test'}
steps {
sh """
rsync --exclude='.git' -r ./ {项目目录}
docker restart {容器名}
docker exec {容器名} bash -c 'cd {项目目录} ; composer install; chmod -R 777 bootstrap storage'
docker exec openresty nginx -s reload
"""
}
}
}
post {
failure {
dingtalk (
robot: 'Deployer',
type: 'MARKDOWN',
title: "{项目名}/${env.BRANCH_NAME}",
text: [
"# [{项目名}](${env.JOB_URL})",
"---",
"- 环境:${env.BRANCH_NAME}",
"- 任务:[#${env.BUILD_NUMBER}](${env.JOB_URL})",
"- 状态:<font color=#DC143C>失败</font>",
"- 提交:${env.COMMIT}"
],
)
}
success {
dingtalk (
robot: 'Deployer',
type: 'MARKDOWN',
title: "{项目名}/${env.BRANCH_NAME}",
text: [
"# [{项目名}](${env.JOB_URL})",
"---",
"- 环境:${env.BRANCH_NAME}",
"- 任务:[#${env.BUILD_NUMBER}](${env.JOB_URL})",
"- 状态:<font color=#32CD32>成功</font>",
"- 提交:${env.COMMIT}"
],
)
}
}
}
{}中是汉字的是指变量,对应实际项目中的参数,因为我的部署环境用到了docker,所以有容器的相关操作
在sh """
"""
中间的是命令行,可以根据实际情况来修改
11、在对应的gitlab项目中添加webhook
可以查看构建历史是否成功,如果失败可以进入console ouput查找具体原因
更多推荐
所有评论(0)