新闻详情

新闻详情

首页 / 资讯中心 / 详情

Baserow CI/CD实战指南:5个阶段从一次提交到Dockerhub发布

发布时间:2026/9/26 19:01:09来源:尧图网络
Baserow CI/CD实战指南:5个阶段从一次提交到Dockerhub发布
Baserow CI/CD实战指南5个阶段从一次提交到Dockerhub发布【免费下载链接】baserowBuild databases, automations, apps agents with AI — no code. Open source platform available on cloud and self-hosted. GDPR, HIPAA, SOC 2 compliant. Best Airtable alternative.项目地址: https://gitcode.com/GitHub_Trending/ba/baserow往 Baserow 仓库推一个 commit背后的 GitLab CI/CD 流水线到底干了什么这篇文章拆解 .gitlab-ci.yml 定义的五阶段流水线、三个分支各自的触发规则、版本发布到 Dockerhub 的完整路径以及 Docker 层缓存的设计取舍。读完后你应能回答谁在什么时候构建、哪些东西会被推送出去、流水线卡住时该翻哪个文件。一次提交的Baserow流水线跑什么流水线固定分为五个阶段build构建开发镜像、lint代码检查、test测试、build-final构建生产镜像、publish发布。在 feature 分支上实际只会走到前三段的一半先构建 backend 和 web-frontend 的「开发变体」镜像。这里的开发变体指用 Dockerfile 里 dev 阶段编译出的镜像带全套开发依赖但在 CI 里它主要扮演缓存角色——把 Python、Node 依赖层固化下来省得每次重装。随后 lint 和 test 阶段直接在这些开发镜像里执行检查后端有 lint、启动自检和拆成 10 个并行组的 pytest 单测外加一个覆盖度合并任务前端跑 eslint/stylelint 与单元测试。端到端测试用 Playwright 分 4 片执行把前端、后端、Celery worker、PostgreSQL 和模拟 S3 一起拉起来但按规则只在 master 和 develop 之外的分支上跑。这套机制还带「跳过」逻辑共享任务模板定义在 .gitlab/ci_includes/jobs.yml其中 skippable 类任务会判断当前 commit 是否已跑过相同测试、且相关文件没有变化是则直接跳过避免重复劳动。feature 分支到此为止——不构建生产镜像也不发布任何东西。什么分支会触发生产镜像构建与发布build-final 阶段是最关键的闸门它只在四种情况下运行——master 分支、develop 分支、commit 消息里带[build-all]标签或手动把BUILD_ALL_IN_ONE变量设为 true。构建出的生产镜像会打上ci-tested-前缀的标签存进 GitLab 的 CI 镜像仓库这个前缀是发布任务的唯一准入凭证任何没通过测试的镜像都无法被推送出去。develop 分支在测试通过后会把镜像以develop-latest标签推到 Dockerhub同时触发下游项目如 baserow-saas的流水线。master 分支构建逻辑相同但发布要等打 tag 才发生。至于清理ci-latest-和ci-tested-前缀的镜像超过 7 天就会被每天 11 点CET的定时任务删掉防止仓库无限膨胀。Baserow版本发布到Dockerhub的4个步骤正式版本的发布不需要人肉 docker push全程由流水线完成从 develop 向 master 发起合并请求并合并等合并提交的流水线成功完成构建与测试给这个合并提交打上版本 tag比如1.8.2GitLab 会为 tag 自动开一条新流水线tag 流水线把已测试镜像推到 Dockerhub打latest和版本号两个标签。有几个边界情况值得记住tag 打在 master 的旧提交上时只会推版本号标签而不会动latesttag 打在任何非 master 提交上会直接失败因为版本发布只允许来自 master如果第 2 步的构建还没成功tag 流水线也会失败什么都推不出去。另外打 tag 时还会打包并发布 deploy/helm 下的 Helm chart 到 chart 仓库。Baserow CI如何用Docker层缓存省时间 ⚡整条构建链靠 BuildKit 的镜像缓存加速规则分两层。普通分支构建时先尝试拉取同分支最新的ci-latest-分支名镜像做缓存源拉不到就退而用 develop 分支的ci-latest-develop再拉不到才从头构建构建完还会把新镜像推回去供下次流水线复用。build-final 阶段则同时用开发镜像和上一个生产镜像做双缓存。master 分支比较特殊它不维护自己的缓存只从 develop 借。原因是发布之间可能隔好几个星期自己的缓存要么早被 7 天清理任务删掉要么层层落后于 develop让「只有 develop 会坏、先在 develop 修好再进 master」比双份维护更稳妥。缓存也有安全代价——底层镜像和系统包的层一旦被缓存就不再重跑新发布的补丁进不来。Baserow 的对策是每天在 develop 上跑一条定时流水线把TRIGGER_FULL_IMAGE_REBUILDyes设为变量强制所有构建加--no-cache --pull从零重建顺带刷新供其他分支复用的缓存这条「早班流水线」还会额外执行标记了once_per_day_in_ci的低频测试。ARM 构建只挂在 master 上通过BUILD_ARM变量和 buildx 远程代理连到一台 ARM64 服务器做多架构构建多花 5-10 分钟所以 develop 和功能分支的镜像只有 AMD64。流水线不听话时手动触发与排错两个 commit 消息标签是最常用的开关[skip-ci]让某次提交完全不走 CI[build-all]则强制构建全部镜像含生产变体、all-in-one、cloudron。改动 CI 配置本身时更好的办法是从 GitLab 的 pipelines/new 页面为指定分支手动开一条流水线逐个覆盖变量做实验常见的有TRIGGER_FULL_IMAGE_REBUILD、ENABLE_JOB_SKIPPING、ENABLE_COVERAGE、ENABLE_RELEASES、BUILD_ALL_IN_ONE。有两张 CI 基础镜像——跑 docker build 的 dind 镜像和装 git、jq 等工具的 util 镜像——它们的构建任务被设成了手动触发避免每个新分支都重复构建改了对应 Dockerfile 后流水线里会出现对应的手动任务点一下即可重建推送。排错时建议打开流水线页面把「Group jobs by」切到 Job dependencies 并勾选 Show dependencies能看到全部任务的依赖图完整规则以 docs/development/ci-cd.md 为准。想在本地复现问题时用 dev.sh 起一套完整的开发环境端到端测试脚本独立放在 e2e-tests/ 目录下可以单独跑。【免费下载链接】baserowBuild databases, automations, apps agents with AI — no code. Open source platform available on cloud and self-hosted. GDPR, HIPAA, SOC 2 compliant. Best Airtable alternative.项目地址: https://gitcode.com/GitHub_Trending/ba/baserow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Bootstrap Icons:Bootstrap 官方开源 SVG 图标库的安装、使用与二次开发指南 2026/9/26 19:45:49

Bootstrap Icons:Bootstrap 官方开源 SVG 图标库的安装、使用与二次开发指南

前端 【免费下载链接】icons Official open source SVG icon library for Bootstrap. 项目地址: https://gitcode.com/gh_mirrors/ic/icons 点击查看 免费下载 Bootstrap Icons 是 Bootstrap 官方维护的开源 SVG 图标库,仓库内收录了超过 2,000 个图标&…

阅读更多 →
2026 最新!OpenClaw 保姆级安装指南:从“配置报错”到“丝滑运行”,手把手带你开启小龙虾之旅 2026/9/26 19:45:49

2026 最新!OpenClaw 保姆级安装指南:从“配置报错”到“丝滑运行”,手把手带你开启小龙虾之旅

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
深入解构Claude Code - 第 6 篇 · 终端里的图形界面:用 React + Yoga 双缓冲渲染打造可复制配置 2026/9/26 19:45:30

深入解构Claude Code - 第 6 篇 · 终端里的图形界面:用 React + Yoga 双缓冲渲染打造可复制配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
基于深度学习的课堂专注度分析与作弊检测系统:YOLO+MediaPipe实战 2026/9/26 19:45:30

基于深度学习的课堂专注度分析与作弊检测系统:YOLO+MediaPipe实战

简介:面向计算机相关专业毕业设计场景的智慧教室项目源码,集成课堂专注度分析与考试作弊检测两大功能,适合正在做毕设、课程设计或期末大作业的学生参考与二次开发。包内共626个文件、约87.73MB,以383个Python源码文件为主体&…

阅读更多 →
WorkBuddy技能版:开发者能力量化与行为追踪系统 2026/9/26 19:45:30

WorkBuddy技能版:开发者能力量化与行为追踪系统

1. 这不是普通教程:WorkBuddy积分助手v2.1.0技能版到底在解决什么问题? WorkBuddy积分助手v2.1.0技能版,这个名字乍看像是一款功能更新的办公小工具,但实际拆开来看,它背后是一套针对知识工作者日常任务流的“行为量化…

阅读更多 →
PyTorch+TVM混合精度QAT:从训练到端侧部署的量化加速实战 2026/9/26 19:45:30

PyTorch+TVM混合精度QAT:从训练到端侧部署的量化加速实战

简介:本资源面向深度学习部署与推理优化方向的开发者,提供一套基于Pytorch与TVM实现低精度及混合精度量化感知训练的完整项目源码,帮助解决模型在边缘设备上算力受限、内存占用高的问题。压缩包共约2000个文件,以1080个Python脚本…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉