讲师中心 微信公众号

工具推荐

视频效率加速
updream

一键生成高质量推广成片

AniShort
AniShort

AI短剧协同制作平台

Seko
Seko

AI短剧一键生成成片

Laper
Laper

剧本策划到成片协作

LinuxCI持续集成教程_Jenkins流水线设计实战

老强大大_8867

老强大大_8867

发布时间:2026-01-07 19:35:02

|

571人浏览过

|

来源于php中文网

原创

Linux CI落地关键在流水线设计贴合开发流程,Jenkins+Jenkinsfile实现检出、准备、构建测试、归档四阶段;支持多环境多架构并行;通过Webhook、PR检查、定时扫描实现持续触发与失败通知。

linuxci持续集成教程_jenkins流水线设计实战

Linux CI 持续集成落地,关键不在工具本身,而在流水线设计是否贴合实际开发流程。Jenkins 作为成熟稳定的 CI 引擎,配合声明式 Pipeline(Jenkinsfile),能清晰表达构建、测试、部署逻辑,也便于版本控制和团队协作。

明确流水线阶段划分

一个典型的 Linux 项目 CI 流水线至少包含四个核心阶段:检出代码、环境准备、构建与测试、结果归档或发布。每个阶段职责单一,失败时定位快。

  • 检出(Checkout):从 Git 仓库拉取指定分支或 tag,建议配置轻量级检出(Lightweight checkout),避免下载整个工作区历史
  • 准备(Setup):安装依赖(如 gcc、cmake、python3-pip)、设置环境变量、初始化子模块(如有)
  • 构建与测试(Build & Test):执行 make / cmake --build / pytest 等命令;单元测试必须在 CI 中运行,失败即中断后续步骤
  • 归档(Archive):将编译产物(如二进制文件、deb 包、tar.gz)上传至制品库(Nexus/Artifactory)或保存到 Jenkins 构建目录供下载

用 Jenkinsfile 实现可复用的声明式流水线

Jenkinsfile 放在项目根目录下,由 Jenkins 自动识别。推荐使用声明式语法(Declarative Pipeline),结构清晰、容错性强。

示例节选(适用于 C 语言项目):

Github Codebase Inspection
Github Codebase Inspection

使用 pygount 检查代码库:统计代码行数(LOC)、编程语言及占比。

下载
pipeline {
    agent { label 'linux-build' }
    environment {
        BUILD_DIR = 'build'
        CC = 'gcc'
    }
    stages {
        stage('Checkout') {
            steps {
                checkout scm
            }
        }
        stage('Setup') {
            steps {
                sh 'mkdir -p ${BUILD_DIR}'
                sh 'apt-get update && apt-get install -y build-essential cmake'
            }
        }
        stage('Build') {
            steps {
                sh 'cd ${BUILD_DIR} && cmake .. && make -j$(nproc)'
            }
        }
        stage('Test') {
            steps {
                sh 'cd ${BUILD_DIR} && ctest --output-on-failure'
            }
        }
        stage('Archive Artifacts') {
            steps {
                archiveArtifacts artifacts: '${BUILD_DIR}/*.bin, ${BUILD_DIR}/*.so', followSymlinks: false
            }
        }
    }
}

注意:agent 标签需提前在 Jenkins 节点配置好对应 label;敏感信息(如密钥)应通过 Credentials Binding 插件注入,而非硬编码。

适配 Linux 多环境与多架构需求

真实 Linux 项目常需验证不同发行版(Ubuntu/CentOS/Debian)或 CPU 架构(x86_64/aarch64)。可通过参数化构建或并行 stage 实现:

  • 用 params 声明发行版和架构参数,动态选择 Docker 镜像或节点标签
  • 用 parallel 启动多个子流水线,分别在 Ubuntu 22.04 和 CentOS 7 上执行相同测试步骤
  • 对交叉编译场景,提前在 agent 上安装 arm-linux-gnueabihf-gcc 等工具链,并在 cmake 中指定 -DCMAKE_TOOLCHAIN_FILE=...

让 CI 真正“持续”起来

CI 不是只点一次“构建”按钮。要让它自动响应变化:

  • 配置 GitHub/GitLab Webhook,推送代码后立即触发流水线
  • 对 PR(Pull Request)启用预提交检查(Pre-merge check),只构建变更涉及的模块(需结合 git diff 分析)
  • 设置定时扫描(Poll SCM 或 cron),捕获未触发 webhook 的老旧仓库更新
  • 失败时自动发邮件或钉钉通知,并附上控制台日志链接和失败阶段截图(可用 Email Extension Plugin 或 DingTalk Plugin)

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

3570

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

8103

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

9802

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

5167

2025.07.23

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

8865

2026.01.21

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

998

2026.04.02

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

7499

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2060

2023.07.06

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

0

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn