Skip to content

Bootstrap testfin OS with silverblue-main base and Project Bluefin integrations#1

Merged
castrojo merged 5 commits intomainfrom
copilot/bootstrap-os-template-repo
Dec 14, 2025
Merged

Bootstrap testfin OS with silverblue-main base and Project Bluefin integrations#1
castrojo merged 5 commits intomainfrom
copilot/bootstrap-os-template-repo

Conversation

Copy link
Contributor

Copilot AI commented Dec 14, 2025

Transform finpilot template into testfin: a custom bootc OS using Fedora Silverblue as the base with Project Bluefin's common layer and Homebrew integration.

Changes

Base image: Switch from ghcr.io/ublue-os/bluefin:stable to ghcr.io/ublue-os/silverblue-main:stable

Project Bluefin integration (distroless pattern):

  • Import common layer (ujust completions, udev rules, GNOME extensions)
  • Import brew layer (Homebrew + systemd services)
  • Use direct COPY --from= instead of intermediate FROM stages
  • Single cp -avf command replaces rsync operations

Containerfile:

FROM scratch AS ctx
COPY build /build
COPY custom /custom
COPY --from=ghcr.io/projectbluefin/common:latest /system_files/shared /files
COPY --from=ghcr.io/projectbluefin/brew:latest /system_files /files

Build script (build/10-build.sh):

# Copy all Project Bluefin files at once
cp -avf /ctx/files/. /

# Enable Homebrew services
systemctl enable brew-setup.service brew-upgrade.timer brew-update.timer

Repository rename: Update all references from "finpilot" to "testfin" across:

  • Containerfile, Justfile, README.md, artifacthub-repo.yml
  • custom/ujust/README.md, .github/workflows/clean.yml, AGENTS.md

Documentation: Add "What Makes testfin Different" section documenting base image, integrations, and runtime package management approach.

Pattern follows projectbluefin/distroless implementation.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/repos/ublue-os/silverblue-main/releases/latest
    • Triggering command: /usr/bin/curl curl -s REDACTED (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

Use @projectbluefin/finpilot as a template, name the OS the repository name. Ensure the entire operating system is bootstrapped. Ensure all github actions are enabled and running. Ensure the README has the github setup instructions for cosign and the other steps required to finish the task.

Base this on @ublue-os/silverblue-main as the base image, and add the @projectbluefin/common and @projectbluefin/brew containers as per their instructions.


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI self-assigned this Dec 14, 2025
Copilot AI and others added 4 commits December 14, 2025 21:31
…grations

- Rename project from finpilot to testfin across all files
- Change base image to ghcr.io/ublue-os/silverblue-main:stable
- Add @projectbluefin/common OCI layer for shared configuration
- Add @projectbluefin/brew OCI layer for Homebrew integration
- Update build script to integrate common and brew layers
- Add "What Makes testfin Different" section to README

Assisted-by: Claude 3.5 Sonnet via GitHub Copilot

Co-authored-by: castrojo <1264109+castrojo@users.noreply.github.com>
- Update AGENTS.md title and references from finpilot to testfin
- Update README.md Quick Start section with correct line numbers
- Add clean.yml to list of files needing repository name update
- Update base image reference in README to silverblue-main

Assisted-by: Claude 3.5 Sonnet via GitHub Copilot

Co-authored-by: castrojo <1264109+castrojo@users.noreply.github.com>
- Add rsync availability check in build script
- Install rsync if not present before using it
- Update AGENTS.md with correct line numbers for Containerfile
- Update workflow file reference from ghcr-pruner.yml to clean.yml

Assisted-by: Claude 3.5 Sonnet via GitHub Copilot

Co-authored-by: castrojo <1264109+castrojo@users.noreply.github.com>
- Remove intermediate FROM stages for common and brew
- Copy files directly to /files in ctx stage using COPY --from
- Replace rsync with simple cp -avf following distroless pattern
- Remove rsync dependency check
- Enable brew systemd services (brew-setup, brew-upgrade, brew-update)
- Update comments to reference @projectbluefin/distroless

This simplifies the build and follows the established pattern from
https://github.com/projectbluefin/distroless

Assisted-by: Claude 3.5 Sonnet via GitHub Copilot

Co-authored-by: castrojo <1264109+castrojo@users.noreply.github.com>
Copilot AI changed the title [WIP] Bootstrap OS repository from projectbluefin template Bootstrap testfin OS with silverblue-main base and Project Bluefin integrations Dec 14, 2025
Copilot AI requested a review from castrojo December 14, 2025 21:41
@castrojo castrojo marked this pull request as ready for review December 14, 2025 21:41
@castrojo castrojo merged commit 2cd3fa7 into main Dec 14, 2025
1 of 3 checks passed
@castrojo castrojo deleted the copilot/bootstrap-os-template-repo branch December 14, 2025 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants