Skip to content

ci(image): Build the static IP Raspberry Pi image for releases - #564

Merged
brandonhs merged 5 commits into
mainfrom
ci/pimod-static-image
Oct 20, 2026
Merged

brandonhs merged 5 commits into
mainfrom
ci/pimod-static-image

Conversation

@Tekunalogy

@Tekunalogy Tekunalogy commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

What

Builds dweOS-staticIP-RPi-image-<tag>.img.xz with pimod whenever a release is published, and attaches it to the release.

  • pimod/dweOS-static.Pifile: the static IP Pifile (192.168.2.2/24), moved into the repo. Instead of piping install.sh from main (which downloads whatever release is latest), it copies the release's release.tar.gz into the image and installs it with:
  • pimod/image_install_script.sh: unpacks the tarball into /opt/DWE_OS_2, runs the release's install_requirements.sh / create_venv.sh, checks that GStreamer and the Python venv actually work, and enables (doesn't start) dwe_os_2. install.sh is unchanged.
  • .github/workflows/pi-image.yml:
    • release: published: builds and uploads to the release (skips prereleases such as preview-pr-* and -blueos tags)
    • manual run: tag + upload_to_release (default off, so the image is kept as a 7-day workflow artifact)
    • PRs touching pimod/**: builds against the latest release, artifact only
    • runs on ubuntu-24.04-arm so the arm64 chroot runs natively rather than under QEMU

Local build

cd pimod
gh release download v0.7.7 -p release.tar.gz
docker run --rm --privileged -v "$PWD":/work -w /work nature40/pimod pimod.sh dweOS-static.Pifile

Testing

  • actionlint, shellcheck
  • PR build produces the image artifact
  • Flash the artifact to a Pi: boots, reachable at 192.168.2.2, dweOS starts and cameras stream

🤖 Generated with Claude Code

Tekunalogy and others added 2 commits October 14, 2026 13:57
Moves the static IP Pifile into the repo and builds it with pimod when a
release is published, attaching dweOS-staticIP-RPi-image-<tag>.img.xz to
the release. The image installs that release's release.tar.gz through a
new image_install_script.sh instead of downloading the latest release
from inside the build.

Manual runs can build an image for any release, and PRs touching the
Pifile build one against the latest release as a workflow artifact.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Preview build preview-pr-564 deleted.

Tekunalogy and others added 2 commits October 14, 2026 17:53
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tekunalogy
Tekunalogy marked this pull request as ready for review October 15, 2026 01:07
@Tekunalogy
Tekunalogy requested a review from brandonhs October 15, 2026 01:10
@Tekunalogy

Copy link
Copy Markdown
Member Author

I tested the image. Works normally.

@brandonhs
brandonhs merged commit 0b6bf18 into main Oct 20, 2026
5 checks passed
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