Skip to content

feat(ci/cd): migrate from Packer to use official rpi-image-gen tool#353

Open
zytegalaxy wants to merge 146 commits into
mainfrom
rpi-image-gen
Open

feat(ci/cd): migrate from Packer to use official rpi-image-gen tool#353
zytegalaxy wants to merge 146 commits into
mainfrom
rpi-image-gen

Conversation

@zytegalaxy

Copy link
Copy Markdown
Collaborator

This pull request migrates the Raspberry Pi OS image build process from using Packer to the official rpi-image-gen tool. It introduces new configuration and layer files for rpi-image-gen, updates the GitHub Actions workflow to use the new tool, and removes the old Packer scripts. The new approach provides greater flexibility and maintainability for building custom UBO App images.

Migration to rpi-image-gen:

  • .github/workflows/integration_delivery.yml: Replaces the Packer-based image build steps with steps to clone, install, and use rpi-image-gen, including preparing a staging directory and updating artifact handling. Matrix configuration is updated to use variants and YAML configs instead of suffixes. [1] [2]

New configuration and layer files for rpi-image-gen:

  • scripts/rpi-image-gen/config/ubo-default.yaml, scripts/rpi-image-gen/config/ubo-lite.yaml: Introduce YAML configs for default and lite image variants, specifying device, image, layer, and staging directory settings. [1] [2]
  • scripts/rpi-image-gen/layer/ubo-base.yaml: Adds the base layer definition for UBO App images, including required packages and customization hooks for installing the app and configuring system services.
  • scripts/rpi-image-gen/layer/ubo-desktop.yaml: Adds a desktop layer for the default variant, configuring LightDM autologin and removing unwanted autostart entries.

Removal of Packer scripts:

  • scripts/packer/image.pkr.hcl, scripts/packer/image-local.pkr.hcl: Remove old Packer configuration files and provisioners, as the build process now uses rpi-image-gen. [1] [2]

sassanh and others added 30 commits August 28, 2025 21:36
… rendering a notification to force a redraw)
…of the function to be ready in the runner thread before returning it
…inal behind it by default when stage manager is on and streamline development
…o the reducer, previously implemented via autorun
…switch service to switch between available image generator services
…cronyms in them like, `QRCodeInputDescription`
…nts can send actions with different types of `InputDescription`, previosuly they could only impossibly send abstract `InputDescription` itself
… changes to the input transport of the assistant client
ubo-bootstrap writes polkit rules to /etc/polkit-1/rules.d/ (needs
polkitd) and calls raspi-config to enable I2C/SPI. Both were present
in the full RPi OS image Packer used but missing from rpi-image-gen's
minbase.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
In chroot (--in-packer), there is no running systemd or user dbus
session. Skip daemon_reload() entirely and create user service enable
symlinks manually instead of calling systemctl --user enable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
venv.create() inside preexec_fn fails in chroot environments because
the forked child process has an incomplete user environment after
setuid. Move venv creation to the main process (as root), fix
ownership with os.walk, and only use preexec_fn for the uid/gid drop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
venv.create(with_pip=True) requires the stdlib venv module which on
Debian is in the python3-venv package (separate from python3-virtualenv).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove the rpi-image-gen work directory (chroot filesystem) and staging
files after the image is built. This frees several GB before the gzip
compression step which needs space for chunk splitting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Base automatically changed from display-timeout to pipecat-ux-improvements February 19, 2026 21:05
Base automatically changed from pipecat-ux-improvements to pipecat-image February 19, 2026 21:46
Base automatically changed from pipecat-image to main February 20, 2026 08:30
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