在 Debian 上配置 Jenkins 多分支构建
一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-11-jdkwget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo "deb https://pkg.jenkins.io/debian-stable binary/" | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt update && sudo apt install -y jenkins
sudo systemctl enable --now jenkinshttp://<服务器IP>:8080sudo cat /var/lib/jenkins/secrets/initialAdminPassword二 安装必要插件
三 创建多分支流水线
四 配置 Webhook 实现即时构建
https://<IP>/multibranch-webhook-trigger/invoke?token=<TOKEN>)triggers 中声明:triggers {
GenericTrigger(
causeString: 'Triggered by $ref',
genericVariables: [[key: 'ref', value: '$.ref']],
regexpFilterExpression: '^refs/heads/(main|develop|release/.*)$',
regexpFilterText: '$ref',
token: 'mytoken'
)
}
https://<IP>/generic-webhook-trigger/invoke?token=mytokentriggers 写入 Jenkinsfile 后,需触发一次变更使 Jenkins 拉取新配置,之后即可按规则触发。五 示例 Jenkinsfile 与常见问题
pipeline {
agent any
parameters {
booleanParam(name: 'DEPLOY_TO_PROD', defaultValue: false, description: 'Deploy to production?')
}
environment {
ARTIFACT = 'target/app.jar'
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Build') {
steps {
sh 'mvn -B -DskipTests clean package'
}
}
stage('Deploy to Test') {
when { expression { !params.DEPLOY_TO_PROD } }
steps {
sh './deploy.sh test'
}
}
stage('Deploy to Prod') {
when { expression { params.DEPLOY_TO_PROD } }
steps {
input '确认部署到生产环境?'
sh './deploy.sh prod'
}
}
}
post {
success { echo 'Build and deploy succeeded.' }
failure { echo 'Build or deploy failed.' }
}
}
triggers 未触发:提交一次变更以让 Jenkins 拉取新 Jenkinsfileexport BUILD_ID=dontKillMe(适用于后台常驻进程场景)。