以下是在Ubuntu上编写Jenkins构建脚本的规范要点,基于Jenkins Pipeline(推荐使用声明式语法):
安装Jenkins
通过命令行安装Jenkins及Java依赖,确保版本兼容:
sudo apt update
sudo apt install openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
配置基础环境
sudo apt install maven nodejs npm # 根据项目类型选择
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Jenkinsfile,与代码一同版本化。pipeline {
agent any // 指定执行节点,如 'label: ubuntu-server'
environment {
// 定义环境变量,避免硬编码敏感信息
API_KEY = credentials('api-key-secret')
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/your/repo.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package' // Maven项目
// 或 sh 'npm install && npm run build' // 前端项目
}
}
stage('Test') {
steps {
junit 'target/surefire-reports/*.xml' // 测试报告
}
}
stage('Deploy') {
steps {
sh 'scp target/*.jar user@deploy-server:/path/to/deploy'
}
}
}
post {
success {
echo '构建成功'
}
failure {
echo '构建失败'
}
}
}
node块和Groovy语法:node('ubuntu-server') {
stage('Build') {
sh 'echo "Building on Ubuntu..."'
// 调用Shell脚本
sh './scripts/build.sh'
}
}
sh执行Shell命令,确保脚本可跨平台兼容。chmod +x赋予脚本执行权限,避免直接在Pipeline中写高危命令(如rm -rf)。echo或println记录关键步骤,便于调试。parameters定义可配置参数(如分支、环境),提升复用性。共享库与模块化
将通用逻辑(如部署脚本)封装到Jenkins共享库,通过@Library引用。
安全增强
withCredentials安全处理敏感信息(如密码、API密钥)。并行与条件执行
parallel {
stage('Unit Test') { steps { sh 'mvn test' } }
stage('Integration Test') { steps { sh 'mvn verify -DskipUnitTests' } }
}
stage('Deploy to Prod') {
when {
branch 'main'
}
steps {
sh 'kubectl apply -f deployment.yaml'
}
}
语法检查
在Jenkins中通过“Pipeline Syntax”工具验证脚本合法性。
日志与监控
post { always { cleanWs() } })。版本迭代
每次修改Jenkinsfile后,通过Git提交并触发Pipeline自动构建,确保变更可追溯。
参考来源: