* fix(ci): make image builds noninteractive
Both image builds fail in packer:
- arm64-rpi: dpkg halts on the interactive initramfs.conf conffile
prompt (Y/I/N/O/D/Z) during 'apt-get upgrade' kernel configuration,
then cascades: E: Sub-process /usr/bin/dpkg returned an error code (1)
- amd64: debconf falls back through Dialog/Readline/Teletype frontends
(no controlling tty) and the build later fails on
'E: Package netcat has no installation candidate' - the netcat
metapackage was removed in Debian trixie
Fixes:
- export DEBIAN_FRONTEND=noninteractive and install an apt.conf.d
dropin with Dpkg::Options --force-confdef/--force-confold so conffile
prompts resolve to the default action and keep the existing config
(build_joininbox.sh and the amd64 update.sh kernel upgrade)
- install netcat-openbsd when the netcat metapackage is unavailable
* feat(ci): skip code signature verification on PR builds, label images
PR CI builds pull head commits from forks which are not signed by the
maintainer keys, so the mandatory PGP verification in
build_joininbox.sh fails every PR image build:
# BUILD FAILED --> PGP verification not OK / signature(0) verify(0)
Behavior after this change:
- pull_request workflow runs pass the PR number through the packer
build chain (workflow -> build script -> packer var -> provisioner
env -> JOININBOX_PR_NUMBER)
- build_joininbox.sh skips the source signature verification when
JOININBOX_PR_NUMBER is set, prints a prominent warning, and labels
the image in /etc/joininbox-build-info as an UNVERIFIED test build
- the uploaded artifact name carries a -pr<N> suffix via BUILD_VERSION
- push-to-master and workflow_dispatch builds never set the variable,
so production images keep mandatory verification
* fix(ci): drop apt policy after build, warn on PR images in main menu
- Remove /etc/apt/apt.conf.d/90joininbox-noninteractive at the end of
build_joininbox.sh: the noninteractive dpkg conffile policy is a
build-time measure and must not ship in deployed images, where
interactive conffile handling is the default again
- Show '!!! UNVERIFIED PR BUILD #<N> - TESTING ONLY !!!' on top of the
main menu whenever /etc/joininbox-build-info is present, so a flashed
PR image cannot be mistaken for a production build
---------
Co-authored-by: autoblitzbot <autoblitzbot@users.noreply.github.com>
* chore: update wallet creation to use watch-only-descriptor-wallet
* remove duplicate version check
* fix: update release URL in install script and correct typo in wallet import message
* ci: test amd64 image descriptor wallet migration with Bats
* ci: boot amd64 image tests with OVMF pflash
* fix: gate descriptor wallet migration on Bitcoin Core v30
Detect the connected Bitcoin Core version over RPC before migrating.
Keep wallet.dat for v29.x or when the version cannot be determined.
Add regression coverage for both migration and compatibility paths.
* ci: make amd64 image tests independent of guest apt
Inject a pinned bats-core checkout into the temporary VM instead of
installing Bats through the guest package repositories.
Remove the duplicate pull request trigger and simplify artifact lookup.
* ci: harden image build run
* docs(FAQ): how automatic migration works
* amd64 base image update to debian-12.11.0-amd64-netinst.iso
* chore: update actions/upload-artifact to v4
* chore: build arm64-rpi on raspios_lite_arm64 only
* build: create home folders as 0755 on Debian 12
* build: add bash
* fix: add --shell /bin/bash to user creation
* copy the skeleton files for users with login
* update workflows
* jam-remote update to v0.1.6
* amd64 image update to debian-12.2.0, clean vars
* add Makefile
* Add setup-qemu step, switch to qemu-aarch64-static, use packer-builder-arm:1.0.4 (#106)
* Use mkaczanowski/packer-builder-arm:1.0.4
* Switch to qemu-aarch64-static
* Setup qemu before build
* pass github_user and branch to build script
* update .gitignore
Co-authored-by: Daniel Bast <2790401+dbast@users.noreply.github.com>
* add files to install jam to connect remotely
* update jam and nginx conf
* use ${USERNAME} consistently
* jam update to v0.1.1
* use dergigi's pubkey to verify
* docs update