在 Ubuntu 上用 Jenkins 搭建持续集成
一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-17-jdkjava -versioncurl -fsSL https://pkg.jenkins.io/debian/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/nullsudo apt update && sudo apt install -y jenkins && sudo systemctl start jenkins && sudo systemctl enable jenkinssudo cat /var/lib/jenkins/secrets/initialAdminPassword二 安全与网络配置
sudo ufw allow 8080sudo ufw statussudo systemctl edit jenkins(在 [Service] 下添加 Environment=JENKINS_PORT=8081)sudo systemctl daemon-reload && sudo systemctl restart jenkinssudo ufw allow 8081三 创建第一个 Pipeline 任务
pipeline {
agent any
tools {
// 若已全局工具配置,可在此指定名称;否则使用系统 PATH
// jdk 'openjdk-17'
// nodejs 'node-18'
}
environment {
// 可在此设置全局环境变量,如 APIFOX_TOKEN
}
stages {
stage('Checkout') {
steps { git url: 'git@github.com:your-org/your-repo.git', branch: 'main' }
}
stage('Build') {
steps { sh 'make build || ./mvnw package -DskipTests' }
}
stage('Test') {
steps { sh 'make test || ./mvnw test' }
}
stage('Archive') {
steps { archiveArtifacts artifacts: '**/target/*.jar,**/dist/*.zip', fingerprint: true }
}
}
post {
success { echo 'Build SUCCESS' }
failure { echo 'Build FAILED' }
}
}
四 触发方式与通知
H/5 * * * *(每 5 分钟检查一次变更)五 常见问题与排错要点
NO_PUBKEY 9B7D32F2D50582E6sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9B7D32F2D50582E6,再 sudo apt updatesystemctl edit jenkins 设置 JENKINS_PORT,并放行新端口后重启update-alternatives 切换默认 Java,并设置 JAVA_HOMEHost key verification failed 或无法拉取sudo su - jenkins -s /bin/bash),将公钥添加到代码平台;或在 Jenkins 凭据中配置正确的 SSH 私钥。