在 Ubuntu 上实现 Jenkins 自动化,通常包含以下几个层面:
下面按实战步骤说明。
#!/bin/bash
sudo apt update
sudo apt install -y openjdk-17-jdk
curl -fsSL https://pkg.jenkins.io/debian/jenkins.io.key | sudo tee \
/usr/share/keyrings/jenkins-keyring.asc > /dev/null
echo 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/null
sudo apt update
sudo apt install -y jenkins
sudo systemctl enable jenkins
sudo systemctl start jenkins
./build.sh
pipeline {
agent any
stages {
stage('Clone') {
steps {
git 'https://github.com/user/repo.git'
}
}
stage('Build') {
steps {
sh 'make build'
}
}
stage('Test') {
steps {
sh 'make test'
}
}
stage('Deploy') {
steps {
sh 'bash deploy.sh'
}
}
}
}
在 Jenkins 中:
GitHub hook triggerhttp://<jenkins-ip>:8080/github-webhook/
Jenkins 内置:
H 2 * * * # 每天凌晨2点
#!/bin/bash
tar -czf /backup/jenkins-$(date +%F).tar.gz /var/lib/jenkins
加入 crontab:
0 3 * * * /opt/backup_jenkins.sh
stage('Docker Build') {
steps {
sh 'docker build -t myapp .'
}
}
或 Jenkins 本身跑在 Docker:
docker run -d -p 8080:8080 -v jenkins_home:/var/jenkins_home jenkins/jenkins
代码提交
↓
GitHub Webhook
↓
Jenkins 自动拉代码
↓
自动构建 + 测试
↓
自动部署(SSH / Docker / K8s)
如果你愿意,可以告诉我:
我可以直接给你一套 可复制的 Jenkinsfile + 脚本。