0

0

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

冷炫風刃

冷炫風刃

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

|

511人浏览过

|

来源于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 语言项目):

FreeGen
FreeGen

免费的AI文生图片工具,不受限、没token压力。

下载
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)

相关专题

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

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

335

2023.10.09

更新pip版本
更新pip版本

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

403

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、保存并关闭文件即可。

748

2024.12.23

python升级pip
python升级pip

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

337

2025.07.23

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

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

637

2023.07.05

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

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

525

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

264

2023.07.24

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

541

2024.04.09

java学习网站推荐汇总
java学习网站推荐汇总

本专题整合了java学习网站相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.08

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.8万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号