Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >『Jenkins』Jenkins入门教程:从零到一的CI/CD实现

『Jenkins』Jenkins入门教程:从零到一的CI/CD实现

原创
作者头像
数字扫地僧
发布于 2025-01-18 13:40:09
发布于 2025-01-18 13:40:09
30700
代码可运行
举报
文章被收录于专栏:Y-StarryDreamerY-StarryDreamer
运行总次数:0
代码可运行

Jenkins 是一个开源的自动化服务器,广泛应用于持续集成(CI)和持续交付(CD)的流程中。它允许开发团队自动化构建、测试、部署等过程,提高开发效率、减少人工干预和错误。在现代软件开发中,Jenkins被广泛应用于各种规模的项目中,帮助开发团队实现自动化的工作流。

随着软件开发和维护的规模不断扩大,开发团队需要一种自动化的方式来管理和部署代码。传统的手动部署过程不仅繁琐,而且容易出错。为了提高软件交付的速度和质量,持续集成(CI)和持续交付(CD)应运而生。持续集成通过自动化构建和测试,使得开发团队能够频繁地将代码集成到主分支中,而持续交付则帮助自动化软件的发布和部署过程。

Jenkins是当前最流行的CI/CD工具之一,它通过提供插件化架构,能够与各种版本控制系统、构建工具、测试工具、部署工具等无缝集成,从而实现持续集成与持续交付。

Jenkins简介

1. 什么是Jenkins

Jenkins是一个基于Java的开源自动化服务器,最初由Kohsuke Kawaguchi在2004年创建。它提供了一个简单而强大的方式来实现自动化任务,特别是在CI/CD方面。通过使用Jenkins,开发团队可以:

  • 自动化构建、测试和部署。
  • 实现频繁的代码集成。
  • 提高开发效率、代码质量和发布的可靠性。

Jenkins有大量的插件,允许它与不同的版本控制系统(如Git)、构建工具(如Maven、Gradle)以及部署工具(如Docker、Kubernetes、AWS)进行集成。

2. Jenkins的主要特点

  • 开源和免费:Jenkins是一个开源项目,可以自由下载和使用。
  • 插件化架构:Jenkins通过插件支持与不同工具和技术栈的集成,可以根据需要扩展功能。
  • 多平台支持:Jenkins可以运行在各种操作系统(LinuxWindows、macOS)上。
  • 分布式构建:Jenkins支持通过分布式构建来加速CI/CD过程。
  • 持续集成/持续交付:Jenkins能够帮助实现自动化构建、测试和部署流程,从而提高开发效率和软件质量。

Jenkins安装与配置

1. 安装Jenkins

Jenkins支持多种安装方式,可以选择使用官方安装包或使用Docker进行安装。以下是通过Ubuntu操作系统安装Jenkins的步骤。

(1) 更新系统
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt update
sudo apt upgrade
(2) 安装Java环境

Jenkins需要Java运行环境,首先安装OpenJDK:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install openjdk-11-jdk
(3) 添加Jenkins仓库和安装Jenkins
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
echo "deb http://pkg.jenkins.io/debian/ stable main" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install jenkins
(4) 启动Jenkins

安装完成后,启动Jenkins服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start jenkins
(5) 检查Jenkins服务状态
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status jenkins
(6) 配置防火墙

Jenkins默认监听端口8080,如果服务器开启了防火墙,需要允许该端口的访问:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ufw allow 8080
(7) 打开Jenkins Web界面

默认情况下,Jenkins会在http://localhost:8080监听HTTP请求。打开浏览器并访问该地址,您会看到Jenkins的初始设置页面。

2. Jenkins初始设置

在Jenkins Web界面中,您需要输入一个初始管理员密码,该密码可以在安装过程中从命令行获取。可以通过以下命令查看密码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

复制该密码并粘贴到Jenkins页面中,继续进行设置。之后,Jenkins将提示您安装一些推荐的插件,选择安装即可。

安装完成后,您将被引导进入Jenkins的主界面,完成初始设置。

创建第一个Jenkins项目

接下来,我们将创建一个简单的Jenkins项目,并配置持续集成流程。

1. 创建新任务

在Jenkins主界面中,点击“新建任务”按钮,选择“自由风格项目”,并给任务命名(如“first-ci”)。点击“确定”进入任务配置页面。

2. 配置版本控制

Jenkins支持多种版本控制系统,最常用的是Git。在“源代码管理”部分,选择“Git”,并配置Git仓库地址(例如GitHub上的仓库URL)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/yourusername/yourrepository.git

3. 配置构建触发器

在“构建触发器”部分,可以配置项目的自动构建条件。常见的触发器包括:

  • 定时构建:通过设置Cron表达式定期执行构建。
  • 源码变动:当Git仓库中的代码发生变化时,自动触发构建。

例如,选择“GitHub webhook”来使Jenkins在GitHub上有提交时自动触发构建。

4. 配置构建步骤

在“构建”部分,选择合适的构建工具。对于一个简单的Java项目,可以选择“执行Shell”或“执行Windows批处理命令”来运行构建命令。例如,如果使用Maven构建项目,可以执行以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mvn clean install

如果是Node.js项目,可以执行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install
npm test

5. 配置构建后操作

在“构建后操作”部分,可以配置构建完成后的操作。常见的操作包括:

  • 发送构建通知:构建成功或失败后,发送电子邮件或Slack通知。
  • 部署到服务器:自动将构建的应用部署到目标服务器。
  • 归档构建工件:保存构建生成的文件,如.jar.warzip等。

例如,选择“归档构建工件”,并指定需要保存的文件路径,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
target/*.jar

6. 保存并执行构建

完成所有配置后,点击“保存”按钮,然后点击“立即构建”来执行第一次构建。您可以查看构建日志,了解构建过程的详细信息。

Jenkins Pipeline:自动化构建与部署

Jenkins Pipeline是Jenkins的一项核心功能,它允许通过代码定义整个CI/CD流程。Pipeline使用一种DSL(领域特定语言)编写,可以定义从构建、测试、部署到发布的整个流程。

1. 创建Pipeline项目

在Jenkins主界面中,点击“新建任务”,选择“流水线”,并输入项目名称。点击“确定”后进入流水线配置页面。

2. 配置Pipeline脚本

在“流水线”部分,选择“Pipeline脚本”作为定义方式,并编写Jenkinsfile(Pipeline脚本)。以下是一个简单的Jenkinsfile示例,展示了如何构建一个Java项目:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                git 'https://github.com/yourusername/yourrepository.git'
            }
        }
        stage('Build') {
            steps {
                sh 'mvn clean install'
            }
        }
        stage('Test') {
            steps {
                sh 'mvn test'
            }
        }
        stage('Deploy') {
            steps {
                sh 'scp target/*.jar user@yourserver:/path/to/deploy'
            }
        }
    }
}

这个Pipeline定义了四个阶段:

  • Checkout:从Git仓库拉取代码。
  • Build:构建项目。
  • Test:运行测试。
  • Deploy:将构建好的应用部署到服务器。

3. 执行Pipeline

保存Jenkinsfile后,点击“立即构建”按钮,Jenkins将根据Jenkinsfile中定义的步骤执行整个构建、测试和部署过程。

高级功能与插件

Jenkins有丰富的插件库,可以扩展其功能,帮助开发团队更好地管理CI/CD流程。以下是几个常用的插件:

  • Docker插件:通过Docker插件,Jenkins可以在Docker容器中执行构建

任务,提供隔离的构建环境。

  • Kubernetes插件:与Kubernetes集成,使用Kubernetes管理Jenkins代理节点,支持动态扩展。
  • Slack插件:集成Slack,自动发送构建通知到Slack频道。
  • Pipeline插件:用于定义复杂的Pipeline流程,支持并行执行、条件判断等。

Jenkins作为一个强大的自动化工具,能够帮助开发团队提高构建效率、减少错误并加快软件交付速度。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
『Jenkins』使用Jenkins实现持续集成与持续交付
持续集成(Continuous Integration,CI)是指开发人员频繁地将代码合并到主干,并通过自动化构建和自动化测试来验证代码的正确性。CI的主要目的是:
数字扫地僧
2025/01/19
4100
『Jenkins』Jenkins与Maven的集成配置指南
随着现代软件开发流程的不断演进,持续集成(CI)和持续交付(CD)已经成为了开发团队必不可少的工具。而Jenkins作为最为广泛应用的CI/CD工具,能够自动化执行构建、测试、部署等任务。Maven作为Java生态中广泛使用的构建工具,它能够帮助开发人员自动化管理项目的构建、依赖和发布。
数字扫地僧
2024/12/25
6140
『Jenkins』使用Jenkins与Kubernetes实现CI/CD的详细指南
在现代软件开发过程中,持续集成(CI)和持续交付(CD)已经成为高效开发的重要组成部分。Jenkins作为最广泛使用的开源自动化工具,支持从源代码管理到构建、测试、部署等全过程的自动化管理。而Kubernetes作为现代云原生应用的容器编排平台,能够提供强大的资源管理和自动化部署能力。将Jenkins与Kubernetes结合使用,能够实现自动化构建、测试和部署,提升开发团队的效率并减少人为错误。
数字扫地僧
2024/12/24
2710
深入解析CI/CD:Jenkins与GitLab CI的实战应用
在现代软件开发中,持续集成(CI)和持续部署(CD)已经成为提高开发效率和软件质量的关键实践。本文将详细介绍两种常用的CI/CD工具——Jenkins和GitLab CI,并通过实例代码展示它们的实际应用。
Echo_Wish
2024/10/12
5680
深入解析CI/CD:Jenkins与GitLab CI的实战应用
在现代软件开发中,持续集成(CI)和持续部署(CD)已经成为提高开发效率和软件质量的关键实践。本文将详细介绍两种常用的CI/CD工具——Jenkins和GitLab CI,并通过实例代码展示它们的实际应用。
Echo_Wish
2024/10/11
2580
深入解析CI/CD:Jenkins与GitLab CI的实战应用
『Jenkins』Jenkins与Git的集成与自动化部署
Jenkins作为一个流行的持续集成/持续交付(CI/CD)工具,能够帮助开发团队自动化构建、测试和部署过程。而Git是目前最广泛使用的分布式版本控制系统。将Jenkins与Git集成,可以实现自动化的代码检出、构建、测试以及部署,使得CI/CD流程更加高效、简洁和稳定。
数字扫地僧
2025/01/21
4710
『Jenkins』在Jenkins中配置和管理插件
Jenkins 是一款开源的持续集成(CI)和持续交付(CD)工具,它具有强大的插件生态系统,能够扩展其功能,满足各种自动化需求。Jenkins 插件为开发人员、运维人员和DevOps团队提供了各种功能,比如与版本控制系统(如 Git)的集成、构建工具(如 Maven)的支持、通知(如 Slack)以及部署工具(如 Docker)的支持等。
数字扫地僧
2025/01/22
4030
Jenkins 简单了解使用
作为一名技术博主,我深知在当今IT行业中,持续集成和持续交付(CI/CD)是至关重要的。而Jenkins作为最流行的开源CI/CD工具之一,对于我们来说是必不可少的利器。本文将深入探讨Jenkins的入门知识,从搭建到实战,助您快速掌握这一利器,提高工作效率。
默 语
2024/11/20
1060
『Jenkins』在Jenkins中实现多分支Pipeline构建
在现代软件开发中,持续集成(CI)和持续交付(CD)是实现敏捷开发的重要实践。Jenkins作为最受欢迎的自动化工具之一,广泛应用于CI/CD流程中,帮助团队在代码提交后自动化构建、测试、部署等任务。Jenkins的流水线功能(Pipeline)为开发者提供了一个灵活、可扩展的自动化工作流工具。
数字扫地僧
2025/01/15
3940
如何在 CI/CD 过程中实施高效的自动化测试和部署
在持续集成(CI)和持续交付(CD)过程中,自动化测试和部署是提高软件交付速度和质量的关键。本文将详细介绍如何选择适合的CI/CD工具,配置自动化构建和测试流程,制定全面的测试策略,并确保部署环境的稳定性,采用蓝绿部署等策略降低风险。
Swift社区
2024/08/01
5180
如何在 CI/CD 过程中实施高效的自动化测试和部署
第1章 开篇-为什么要做CI/CD?
本章阐述持续集成系统的发展历程、持续集成系统的原理,以及持续集成系统的实现过程,目的是让大家全面了解持续集成系统,更加深入的学习持续集成系统的原理,为后续章节的学习做好准备。我会分享一些个人的经验。
DevOps云学堂
2020/07/23
2.5K0
『Jenkins』Jenkins与Docker的结合:实现容器化构建
随着DevOps和持续集成(CI)文化的普及,现代软件开发越来越依赖自动化和容器化技术。在这一过程中,Jenkins作为广泛使用的持续集成工具,与Docker的结合,提供了一种高效、灵活的构建和部署方式。Docker为应用提供了隔离的环境,确保开发和生产环境的一致性,而Jenkins则负责自动化构建和部署,提升开发效率。
数字扫地僧
2025/01/26
3120
深入解析Jenkins中的CI与CD:区别与实践
在当今快速发展的软件开发领域,敏捷开发和DevOps理念愈发深入人心。Jenkins作为一款强大的开源自动化服务器,在持续集成(CI)和持续交付/部署(CD)中发挥着关键作用。理解Jenkins中CI和CD的区别,对于构建高效的软件开发流程、提升软件质量和交付速度至关重要。本文将深入探讨Jenkins中的CI与CD,帮助读者更好地把握二者的区别与实践要点。
Front_Yue
2025/02/14
1891
深入解析Jenkins中的CI与CD:区别与实践
CI/CD:实现持续集成与持续交付的完整指南
CI/CD(持续集成/持续交付)是现代软件开发中的关键实践,旨在提高开发流程的效率、减少错误、缩短交付周期,以满足不断增长的市场需求。本文将深入探讨CI/CD的概念、重要性、工作原理、常见工具和最佳实践,同时提供一些示例代码,以帮助读者更好地理解如何实施CI/CD流程以及它如何影响软件开发。
海拥
2023/09/16
7.1K0
CI/CD:实现持续集成与持续交付的完整指南
【git】CI/CD持续集成与部署C++示例
CI/CD(持续集成/持续交付)是一种软件开发实践和方法论,旨在通过自动化和持续性地集成、构建、测试和交付软件来提高开发团队的效率和软件质量。它的目标是使软件开发流程更加敏捷、可靠和可持续。
DevFrank
2024/07/24
5010
别再手动部署了兄弟!聊聊我在项目中搞CI/CD的那些坑与经验
说实话,刚接触敏捷开发那会儿,我对 CI/CD(持续集成/持续交付)理解还停留在“每次开发提代码都要跑自动构建,然后神秘地上生产”这种模糊的印象。直到我亲手在一个敏捷项目中从0搭建完整的 CI/CD 流水线,才真切体会到这玩意儿到底有多香。
Echo_Wish
2025/04/29
1270
别再手动部署了兄弟!聊聊我在项目中搞CI/CD的那些坑与经验
『Jenkins』Jenkinsfile最佳实践:编写与维护
在持续集成(CI)和持续交付(CD)的领域,Jenkins作为一款流行的自动化工具,帮助开发团队实现代码的自动化构建、测试、部署等任务。Jenkinsfile是定义Jenkins流水线的核心文件,它允许开发人员通过Groovy脚本声明和配置各个阶段的构建流程,从而实现自动化的工作流。
数字扫地僧
2025/01/16
2480
一文搞懂Jenkins Pipeline
Jenkins 是一个开源的持续集成(CI)工具,用于自动化软件开发中的构建、测试和部署过程。它允许开发团队自动化重复性的任务,提高软件交付的效率和质量。Jenkins支持大量的插件和集成,可适应各种开发环境和工作流程。
windealli
2023/11/01
1.5K0
一文搞懂Jenkins Pipeline
开源 CI/CD 工具 Jenkins 有哪些学习路径,看看这篇
Jenkins就不用做多余的介绍了,作为CI/CD首选的开源解决方案,持续集成 (Continous Intergration)/ 持续交付 (Continous Delievery),本文只是用于记录使用 Jenkins 的一些基本操作,Jenkins官方文档也率先支持中文,相信对大家的学习热情会有积极地促进作用。
DevOps时代
2019/05/14
2.5K0
『Jenkins』深入理解Jenkins流水线:从基础到高级使用
在现代软件开发中,持续集成(CI)和持续交付(CD)是提高开发效率和软件质量的核心实践。Jenkins作为全球最受欢迎的开源自动化工具,广泛用于实现CI/CD工作流。而Jenkins流水线(Jenkins Pipeline)是实现持续集成和持续交付的核心功能之一。
数字扫地僧
2024/12/23
3600
推荐阅读
相关推荐
『Jenkins』使用Jenkins实现持续集成与持续交付
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验