ITADN
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

bluefin-common

包含所有 Bluefin 变体(bluefin、bluefin-dx、bluefin-lts)中使用的通用配置文件的共享 OCI 层。

目录结构

本仓库将配置文件组织到两个主要目录中,这些目录非常重要:

system_files/bluefin/ - Bluefin 特定配置

Bluefin 特有的文件

  • GNOME 桌面设置和主题
  • Bluefin 壁纸和品牌标识
  • 桌面特定的环境变量
  • GNOME 初始设置配置

system_files/shared/ - 共享配置

Aurora 共享的文件 — Aurora 维护者可以挑选涉及此目录的提交。请在此处直接编辑;更改将在下次构建时传播到所有 Bluefin 变体。

这包括:

  • 用于系统管理的 Just 配方
  • 用于应用程序捆绑包的 Brewfiles
  • 设置钩子(特权、系统、用户)
  • 容器策略和安全设置
  • MOTD 模板和 CLI 装饰
  • 通用 shell 配置

在 Containerfile 中的使用

将此层引用为构建阶段,并复制所需的目录:

复制所有内容:

FROM ghcr.io/projectbluefin/common:latest AS bluefin-common

# Copy all system files
COPY --from=bluefin-common /system_files /

仅复制系统配置:

FROM ghcr.io/projectbluefin/common:latest AS bluefin-common

# Copy only /etc configuration
COPY --from=bluefin-common /system_files/etc /etc

仅复制图像意见:

FROM ghcr.io/projectbluefin/common:latest AS bluefin-common

# Copy only /usr/share configuration
COPY --from=bluefin-common /system_files/usr /usr

Flatpak 自定义

Bluefin-common 提供了一个包含多个层级的全面 flatpak 自定义系统:

系统 Flatpak Brewfiles

默认 flatpaks 现在通过 Homebrew Brewfiles 进行管理,允许进行声明式的系统级安装:

  • system-flatpaks.Brewfile - 在所有 Bluefin 变体上安装的核心 flatpaks(包括 Firefox、Thunderbird、GNOME Circle 应用和实用工具的 37 个应用程序)
  • system-dx-flatpaks.Brewfile - 用于 DX 模式的额外开发相关 flatpaks(包括 Podman Desktop、Builder 和 DevToolbox 的 6 个应用程序)

可以使用以下命令安装:

ujust install-system-flatpaks

Flatpak 覆盖

提供两种类型的 flatpak 覆盖,以授予特定应用程序额外的权限:

系统级覆盖/usr/share/ublue-os/flatpak-overrides/):

  • io.github.kolunmi.Bazaar - 授予对 host-etc 的访问权限以进行系统配置

用户级覆盖/etc/skel/.local/share/flatpak/overrides/):

  • com.visualstudio.code - 启用 Wayland 支持和 Podman 套接字访问
  • com.google.Chrome - 授予对本地应用程序和图标目录的访问权限

这些覆盖会自动通过 /etc/skel 模板应用于新的用户账户。

Brewfiles

/usr/share/ublue-os/homebrew/ 目录包含可通过 bbrew 安装的应用程序捆绑包:

  • system-flatpaks.Brewfile - 所有 Bluefin 变体的默认系统级 flatpaks
  • system-dx-flatpaks.Brewfile - DX(开发者体验)模式的额外 flatpaks
  • full-desktop.Brewfile - 全面的 GNOME Circle 和社区 flatpak 应用集合,以提供完整的桌面体验
  • fonts.Brewfile - 日常工作的常用字体
  • fonts-dev.Brewfile - 用于开发的额外等宽字体
  • cli.Brewfile - CLI 工具和实用程序
  • ai-tools.Brewfile - AI 和机器学习工具
  • cncf.Brewfile - 云原生计算基金会工具
  • k8s-tools.Brewfile - Kubernetes 工具
  • ide.Brewfile - 集成开发环境
  • artwork.Brewfile - 设计和艺术应用

用户可以使用 ujust bbrew 命令安装这些捆绑包,该命令会提示他们选择一个 Brewfile。

CI / 测试

更改在三个层面进行验证:

如果你需要每个工作流的目的和所有权映射,请从 docs/skills/workflow-map.md 开始。

在每个 PR 上

  • validate.ymljust check、shellcheck、pre-commit、子模块漂移、registry/dconf 守卫
  • build.yml — 使用 buildah 构建 OCI 镜像
  • skill-drift.yml — 当实现更改落地但没有相应的 skill-doc 更新时发出警告
  • pr-e2e.yml — 针对下游 Bluefin 基础的咨询性组合镜像通用套件检查

合并到 main 时 — 通过 projectbluefin/testsuite 进行完整层验证:

  • 针对 Bluefin LTS、Bluefin Stable 和 Dakota 运行 common behave 测试套件
  • SSH 模式:behave 从 GHA 运行器通过 SSH 在 QEMU 虚拟机中运行 — 无需完整的 GNOME 会话,约 15 分钟完成
  • 验证 dconf 默认值、锁定键、ujust、设置脚本、桌面条目以及 shell 配置,当它们进入组合镜像时

下游测试 → 稳定版晋升之前

  • promotion-candidate-e2e.yml 在周二针对 ghcr.io/projectbluefin/bluefin:{testing,lts-testing} 运行 smoke,common,为 common 提供关于用于晋升的确切候选标签的仓库本地信号

本地构建

just build

贡献者指标

Alt