Jenkins简介
Jenkins是一个开源的持续集成和持续交付(CI/CD)工具,用于自动化软件开发过程中的构建、测试和部署任务。它通过插件扩展支持多种开发、测试和部署技术,帮助团队实现高效的软件交付流程。
jenkins安装
使用 Docker 安装 Jenkins
运行以下命令启动 Jenkins 容器:
docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts
访问 http://localhost:8080
完成初始化设置,初始密码可在容器日志中找到:
docker logs <container_id>
在 Ubuntu 上安装 Jenkins
添加 Jenkins 官方仓库密钥:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
添加 Jenkins 仓库:
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
更新系统并安装 Jenkins:
sudo apt-get update
sudo apt-get install jenkins
在 CentOS/RHEL 上安装 Jenkins
添加 Jenkins 仓库:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
安装 Jenkins:
sudo yum install jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
在 Windows 上安装 Jenkins
下载 Windows 安装包: 访问 Jenkins 官网 下载 Windows 版本的安装程序。 运行安装程序并按照向导完成安装,安装完成后访问 http://localhost:8080
进行配置。
初始化 Jenkins
访问 Jenkins 控制台后,从指定路径获取初始管理员密码:
cat /var/lib/jenkins/secrets/initialAdminPassword
选择安装推荐的插件或自定义插件,创建管理员账户并完成配置。
防火墙配置
开放 Jenkins 默认端口 8080 和代理端口 50000:
sudo ufw allow 8080
sudo ufw allow 50000
sudo ufw enable
常见问题解决
如果遇到插件安装失败,检查网络连接或更换镜像源:
sudo sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /var/lib/jenkins/hudson.model.UpdateCenter.xml
核心功能
自动化构建与测试
Jenkins可以监控版本控制系统(如Git、SVN)的变更,触发自动构建和测试流程,确保代码变更不会引入错误。
Jenkins与Git结合实例
配置Jenkins与Git集成
在Jenkins中安装Git插件(如默认未安装),进入系统管理 > 插件管理,搜索并安装"Git Plugin"。完成后,在全局工具配置中设置Git的路径(或选择自动安装)。
创建Jenkins任务
新建一个自由风格项目,在源码管理部分选择"Git",填写仓库URL(如https://github.com/user/repo.git
)和凭证(用户名/密码或SSH密钥)。指定分支(如*/main
)。
设置构建触发器
在"构建触发器"中勾选"Poll SCM",设置定时检查Git仓库的间隔(如H/5 * * * *
表示每5分钟检查一次变更)。也可使用GitHub Webhook实现实时触发。
添加构建步骤
在"构建"部分添加执行shell或Windows批处理命令的步骤,例如:
mvn clean package
或调用其他脚本处理代码。
配置构建后操作
例如存档JUnit测试报告或构建产物:
**/target/*.jar
可添加邮件通知或Slack通知插件,在构建失败时发送警报。
使用Jenkinsfile实现Pipeline
在Git仓库根目录创建Jenkinsfile
,定义声明式或脚本式流水线。以下为声明式示例:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean package'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
}
}