一、创建多任务工作流
点击New任务创建一个多分支流水线任务
二 配置General
进入之后配置General项设置任务显示名字,描述可以不用填写jenkins插件会从gitea自动拉取。
三、配置分支源
点击添加分支,选择Gitea源,选择git源,配置操作账号,输入远程仓库的组织空间,选择要配置的仓库。
配置拉取构建行为策略Behavior
三种配置策略,1、不包括也作为PRs的分支,2、只有PRs分支,3所有分支。
远程仓库拉取策略: 我们选择合并到远程仓库时拉取。
如何处理来着fork的pull请求,只处理来着贡献者的pull请求
选择分支选择与过滤策略。选择通配符过滤策略
include * 选择所有分支
Exclude feat/* fix/* 排除feat/ 与fix/开头的分支
四、构建配置
选择 by Jenkinsfile 设置项目中的Jenkinsfile文件路径,如果为空则默认为Jenkinsfile
五、完成
点击保存
Jenkinsfile文件配置说明
pipeline {
agent none
stages {//执行步骤
stage('Build') {//构建
agent {
docker {//使用maven docker镜像来打包项目
image 'maven:3-alpine'
args '-v /home/dapeng/.m2:/root/.m2' //运行的maven容器共享m2本地maven仓库目录
}
}
steps {
sh 'mvn -B -DskipTests clean package' //执行打包操作
}
}
stage('Analysis') {//代码质量检测
agent {
docker {
image 'maven:3-alpine'
args '-v /home/dapeng/.m2:/root/.m2'
}
}
steps {//执行代码质量检测命令
sh 'mvn -B jxr:jxr checkstyle:checkstyle pmd:pmd pmd:cpd spotbugs:spotbugs'
recordIssues enabledForFailure: true, tools: [mavenConsole(), java()/*, javaDoc()*/]
recordIssues enabledForFailure: true, tool: checkStyle(pattern: '**/target/checkstyle-result.xml')
recordIssues enabledForFailure: true, tool: spotBugs(pattern: '**/target/spotbugsXml.xml')
recordIssues enabledForFailure: true, tool: cpd(pattern: '**/target/cpd.xml')
recordIssues enabledForFailure: true, tool: pmd(pattern: '**/target/pmd.xml')
}
}
stage('publish2local') {//推送到内网maven仓库
agent any
when {
branch 'master' //只在master分支构建时才会触发
}
steps {
script {
docker.withRegistry('http://xxxxxxx', 'xxxxxxxxxx') {//配置要推送的docker仓库
def customImage = docker.build('xxxxxxxxxxxxxxxxxxxxx')//打包构建docker
customImage.push() //推送
}
}
}
}
}
}