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),仅供参考
企业数字化 ERP 产品动态
相关推荐
Eino Skill 机制架构分析:从配置骨架到可复现验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 19:01:10
Landsat与Sentinel图像配准实战:从投影对齐到重采样合并 简介:面向陆地卫星(Landsat)与哨兵卫星(Sentinel)图像配准需求的MATLAB实现包,旨在解决不同传感器、不同时间或不同视角获取的遥感影像之间的空间对齐难题。代码已适配多个MATLAB版本,兼容性良好… · 2026/9/26 19:01:03
NativeWind(v2)背景色指南:bg-{n} 与 bg-[n] 的兼容性、透明度与主题定制 移动开发跨平台前端 【免费下载链接】nativewind The utility-first workflow you love from Tailwind CSS in your React Native applications. 项目地址: https://gitcode.com/gh_mirrors/na/nativewind 点击查看 免费下载 NativeWind 将 Tailwind CSS 的 utilit… · 2026/9/26 19:01:03
SolidWorks Flow Simulation流体分析实战:从几何清理到压降计算的完整工作流 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 22:04:59
从零搭建轻量级代码审查流程:open-code-review 实践指南 1. 先搞清楚:代码审查到底在解决什么问题 很多团队把代码审查当成“走形式”,提完 MR 之后找个同事点一下 Approve,然后合入、上线、完事。一旦线上出问题,大家又开始互相问“当时谁 Review 的”。我做过好几个项目的 code review… · 2026/9/26 22:04:59
MapViewer:Windows链接器MAP文件可视化分析工具 简介:MapViewer是一款面向嵌入式开发工程师与C#/.NET桌面应用开发者的专业工具,用于可视化分析GNU链接器(LD)生成的MAP文件及配套ELF可执行映像,精准定位各模块、源文件及符号的内存占用,辅助资源优化与冗余… · 2026/9/26 22:04:51
Neo4j医疗知识图谱实战:构建可落地的临床问答系统 简介:本资源是一个基于Neo4j构建的轻量级医疗问答知识图谱实践项目,面向知识图谱初学者、医疗信息化开发者及NLP方向学习者,旨在解决医疗领域结构化知识建模与关联查询的实际问题。压缩包共37个文件,含13个Python源码(… · 2026/9/26 22:04:51
Atlas 300V推理卡上部署YOLO:从CANN环境到ACL推理实战 1. Atlas 300V 24G 到底算不算一块“运算加速卡”先直接回答这个被问得最多的问题:是的,Atlas 300V 24G 是一块实打实的运算加速卡,但它的定位更准确的说法是“AI推理加速卡”。很多人第一次看到“Atlas 300V”这个名字,第一反应是… · 2026/9/26 22:04:44
3步搞定wordpress地理位置签到 揭秘建站报价内幕 3步搞定wordpress地理位置签到 揭秘建站报价内幕 自己不会代码想做网站,最怕被忽悠。很多老板问wordpress地理位置签到怎么弄,其实核心就三点:选对插件、配置API、处理数据。别被那些虚高的建站报价吓到,今天用广东项目经理的实操… · 2026/9/26 22:04:31
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46