pixie-lab 0.4.2__tar.gz → 0.4.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.github/workflows/cicd.yaml +41 -279
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/CHANGELOG.md +17 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/Makefile +18 -59
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/PKG-INFO +1 -1
- pixie_lab-0.4.3/cijoe/configs/test-pxe-live-env-modes.toml +105 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pixie_wheel_stage.py +0 -1
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pxe_run_chain_test.py +239 -132
- pixie_lab-0.4.3/cijoe/tasks/test-pxe-live-env-modes.yaml +35 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/README.md +13 -43
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/auto/config +3 -18
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pyproject.toml +1 -1
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/_kinds.py +0 -20
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pxe/_renderer.py +31 -64
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_settings_store.py +8 -32
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/dashboard.html +19 -41
- pixie_lab-0.4.3/src/pixie/web/_templates/live_env.html +122 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/main.py +28 -218
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_pxe_plan_json.py +47 -140
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_settings.py +7 -20
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/uv.lock +1 -1
- pixie_lab-0.4.2/cijoe/configs/netboot-pc.toml +0 -31
- pixie_lab-0.4.2/cijoe/configs/test-pxe-flash-always.toml +0 -74
- pixie_lab-0.4.2/cijoe/configs/test-pxe-flash.toml +0 -99
- pixie_lab-0.4.2/cijoe/configs/test-pxe-inventory.toml +0 -95
- pixie_lab-0.4.2/cijoe/configs/test-pxe-tui.toml +0 -74
- pixie_lab-0.4.2/cijoe/scripts/live_build.py +0 -194
- pixie_lab-0.4.2/cijoe/scripts/pxe_flash_stage.py +0 -93
- pixie_lab-0.4.2/cijoe/scripts/pxe_inventory_stage.py +0 -111
- pixie_lab-0.4.2/cijoe/tasks/netboot-pc.yaml +0 -39
- pixie_lab-0.4.2/cijoe/tasks/test-pxe-flash-always.yaml +0 -30
- pixie_lab-0.4.2/cijoe/tasks/test-pxe-flash.yaml +0 -61
- pixie_lab-0.4.2/cijoe/tasks/test-pxe-inventory.yaml +0 -51
- pixie_lab-0.4.2/cijoe/tasks/test-pxe-tui.yaml +0 -47
- pixie_lab-0.4.2/src/pixie/catalog/_live_env.py +0 -128
- pixie_lab-0.4.2/src/pixie/web/_templates/ipxe/pixie-live-env.j2 +0 -55
- pixie_lab-0.4.2/src/pixie/web/_templates/live_env.html +0 -205
- pixie_lab-0.4.2/tests/test_live_env_fetch.py +0 -203
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.dockerignore +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.github/workflows/docs.yml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.gitignore +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/Containerfile +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/LICENSE +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/PLAN.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/README.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/live-env-image.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/test-pxe-nbdboot.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/test-pxe.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/test-usb-ventoy.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/usbboot-pc.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/live_env_image.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/live_env_transform.sh +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pixie_ipxe_build.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pxe_prepare.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_iso_build.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_iso_verify.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_ventoy_guest_start.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_ventoy_stage.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/live-env-image.yaml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/test-pxe-nbdboot.yaml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/test-pxe.yaml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/test-usb-ventoy.yaml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/usbboot-pc.yaml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/audit.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/boot-modes.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/conf.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/deployment.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/hardware-quirks.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/index.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/quickstart.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/README.md +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/pyproject.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/src/pixie_docs/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/src/pixie_docs/cli.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/auxiliary/cloudinit-metadata.meta +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/auxiliary/ipxe-embed.ipxe +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/auxiliary/ipxe-local-general.h +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/archives/backports.list.binary +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/archives/backports.list.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/bootloaders/grub-efi/splash.png +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/bootloaders/syslinux/splash.png +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0500-pixie-install.hook.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0500-pixie-skip-bootloader-menu.hook.binary +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0600-pixie-r8125-dkms.hook.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0700-pixie-clock-from-http.hook.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0800-pixie-ssh-live.hook.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0900-pixie-enable-services.hook.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0980-pixie-apt-validate.hook.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/initramfs-tools/conf.d/pixie-modules-most +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/issue +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/modprobe.d/zz-pixie-blacklist-nouveau.conf +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/motd +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/profile.d/pixie-version.sh +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/getty@.service.d/zzz-pixie-autologin-root.conf +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-early.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-late.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-mid.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-clock-from-http.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-images-discover.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-on-tty1.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-usb-grow.service +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/var-lib-pixie-images.mount +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/udev/rules.d/70-pixie-realtek-2g5-offloads.rules +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/lib/systemd/system-generators/pixie-skip-usb-only-units-on-netboot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-boot-banner +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-clock-from-http +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-images-discover +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-on-tty1 +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-trace +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-usb-grow +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/package-lists/pixie-base.list.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/package-lists/pixie-flash.list.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/preferences/backports.pref.binary +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/preferences/backports.pref.chroot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/_partition.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/_util.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_fetcher.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_routes.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_schema.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_store.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/catalog.toml +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/deploy/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/deploy/_main.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/deploy/_templates.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/disks.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/_log.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/_routes.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/_routes.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/_store.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/_supervisor.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/flash.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/images.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/machines/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/machines/_routes.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/machines/_store.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/oras.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/oras_pull.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pivot/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pivot/nbdboot +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pxe/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pxe/_routes.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tftp/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tftp/_supervisor.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tui/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tui/_app.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tui_catalog.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_auth.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_bind_preview.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_fsutil.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_images.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_inventory.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_overlay_bind.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_overlays.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/.gitkeep +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/bootstrap-icons.min.css +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/bootstrap.min.css +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/fonts/bootstrap-icons.woff +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/fonts/bootstrap-icons.woff2 +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/htmx.min.js +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/pixie-favicon.png +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/sse.js +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_table_state.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/page_description.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/recent_events.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/table_helpers.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/catalog.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/catalog_detail.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/events.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/image_detail.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/images.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/bootstrap.j2 +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/exit.j2 +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/nbdboot.j2 +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/unavailable.j2 +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/layout.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/login.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/machine_detail.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/machines.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/overlays.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/settings.html +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/conftest.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/__init__.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/conftest.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_catalog_fetch.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_deploy.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_exports.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_inventory.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_pxe.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_tftp.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_auth.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_catalog_api.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_catalog_seed.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_deploy_unit.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_event_kinds.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_events_unit.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_exports_unit.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_fetch_progress.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_healthz.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_images_ui.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_machines_unit.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_oras_pull.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_overlays_ui.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_partition_select.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_pivot.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_schema.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_ui_pages.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_web_bind_preview.py +0 -0
- {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_web_inventory.py +0 -0
|
@@ -7,9 +7,9 @@ name: cicd
|
|
|
7
7
|
# (real nbdkit, real HTTP, real NBD wire).
|
|
8
8
|
# * ``build-container``: separate smoke build kept for the "does
|
|
9
9
|
# the Containerfile parse on a fresh runner" signal.
|
|
10
|
-
# * ``build-media``: build the
|
|
11
|
-
#
|
|
12
|
-
#
|
|
10
|
+
# * ``build-media``: build the usbboot-pc bootable .iso via the cijoe
|
|
11
|
+
# live-build pipeline under cijoe/tasks/. Requires live-build +
|
|
12
|
+
# passwordless sudo; the runner has both.
|
|
13
13
|
# * ``verify-usbboot``: structurally verify the usbboot-pc .iso
|
|
14
14
|
# (hybrid ISO + El Torito BIOS & UEFI entries + sha256), then boot
|
|
15
15
|
# it via a real Ventoy stick in QEMU and assert the pixie live env
|
|
@@ -27,9 +27,9 @@ name: cicd
|
|
|
27
27
|
# only. Before this the image was smoke-built and thrown away, so
|
|
28
28
|
# the documented ghcr image was never populated by CI.
|
|
29
29
|
# * ``publish-release``: create the GitHub Release for the tag and
|
|
30
|
-
# attach the media
|
|
31
|
-
#
|
|
32
|
-
#
|
|
30
|
+
# attach the media -- the pixie-live-env nbdboot image + the
|
|
31
|
+
# usbboot-pc bootable .iso + checksums. These used to live only as
|
|
32
|
+
# ephemeral, login-gated workflow artifacts.
|
|
33
33
|
#
|
|
34
34
|
# First publish (claiming the pixie-lab name) requires a one-time
|
|
35
35
|
# PyPI setup: register a Pending Publisher on https://pypi.org
|
|
@@ -106,7 +106,7 @@ jobs:
|
|
|
106
106
|
name: Build ${{ matrix.variant }} image
|
|
107
107
|
needs: test
|
|
108
108
|
runs-on: ubuntu-latest
|
|
109
|
-
# A cold live-build (
|
|
109
|
+
# A cold live-build (usbboot-pc .iso) finishes in
|
|
110
110
|
# 25-40 min on a warm GHA runner. The dominant failure mode is
|
|
111
111
|
# a HANG (in-chroot apt / debootstrap has no timeout), so a 60
|
|
112
112
|
# min cap fails a stuck build fast; the cijoe-output artifact
|
|
@@ -116,7 +116,7 @@ jobs:
|
|
|
116
116
|
strategy:
|
|
117
117
|
fail-fast: false
|
|
118
118
|
matrix:
|
|
119
|
-
variant: [
|
|
119
|
+
variant: [usbboot-pc]
|
|
120
120
|
steps:
|
|
121
121
|
- uses: actions/checkout@v6
|
|
122
122
|
|
|
@@ -171,17 +171,6 @@ jobs:
|
|
|
171
171
|
path: cijoe/cijoe-output
|
|
172
172
|
if-no-files-found: warn
|
|
173
173
|
|
|
174
|
-
- name: Upload artifact (netboot-pc)
|
|
175
|
-
if: matrix.variant == 'netboot-pc'
|
|
176
|
-
uses: actions/upload-artifact@v7
|
|
177
|
-
with:
|
|
178
|
-
name: pixie-netboot-pc-x86_64
|
|
179
|
-
path: |
|
|
180
|
-
~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.vmlinuz
|
|
181
|
-
~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.initrd
|
|
182
|
-
~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.squashfs
|
|
183
|
-
~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.sha256
|
|
184
|
-
|
|
185
174
|
- name: Upload artifact (usbboot-pc)
|
|
186
175
|
if: matrix.variant == 'usbboot-pc'
|
|
187
176
|
uses: actions/upload-artifact@v7
|
|
@@ -318,9 +307,8 @@ jobs:
|
|
|
318
307
|
# netboot bundle, root disk from nosi's img.gz -- and asserts a
|
|
319
308
|
# real Debian userspace comes up over NBD.
|
|
320
309
|
#
|
|
321
|
-
# 60 min timeout
|
|
322
|
-
#
|
|
323
|
-
# pixie's blob store dominates wall clock.
|
|
310
|
+
# 60 min timeout because the real oras pull (~2.6 GiB compressed) +
|
|
311
|
+
# img.gz decompression to pixie's blob store dominates wall clock.
|
|
324
312
|
runs-on: ubuntu-latest
|
|
325
313
|
timeout-minutes: 60
|
|
326
314
|
steps:
|
|
@@ -365,83 +353,20 @@ jobs:
|
|
|
365
353
|
path: cijoe/_build/test-pxe
|
|
366
354
|
if-no-files-found: warn
|
|
367
355
|
|
|
368
|
-
test-pxe-
|
|
369
|
-
name: PXE
|
|
370
|
-
#
|
|
371
|
-
# pixie
|
|
372
|
-
#
|
|
373
|
-
#
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
timeout-minutes: 30
|
|
377
|
-
steps:
|
|
378
|
-
- uses: actions/checkout@v6
|
|
379
|
-
|
|
380
|
-
- name: Install host tools (qemu, dnsmasq, ipxe, bridge)
|
|
381
|
-
run: |
|
|
382
|
-
set -eu
|
|
383
|
-
sudo apt-get update
|
|
384
|
-
sudo apt-get install -y --no-install-recommends \
|
|
385
|
-
qemu-system-x86 \
|
|
386
|
-
qemu-utils \
|
|
387
|
-
dnsmasq \
|
|
388
|
-
ipxe \
|
|
389
|
-
bridge-utils \
|
|
390
|
-
iproute2
|
|
391
|
-
sudo chmod a+rw /dev/kvm
|
|
392
|
-
ls -la /dev/kvm
|
|
393
|
-
|
|
394
|
-
- name: Install cijoe
|
|
395
|
-
run: pipx install --force cijoe
|
|
396
|
-
|
|
397
|
-
- name: Install uv
|
|
398
|
-
uses: astral-sh/setup-uv@v8.1.0
|
|
399
|
-
|
|
400
|
-
- name: Download netboot-pc bake artifacts
|
|
401
|
-
uses: actions/download-artifact@v7
|
|
402
|
-
with:
|
|
403
|
-
name: pixie-netboot-pc-x86_64
|
|
404
|
-
path: ~/system_imaging/disk/
|
|
405
|
-
|
|
406
|
-
- name: Show downloaded artifact contents
|
|
407
|
-
run: |
|
|
408
|
-
set -eu
|
|
409
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
410
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
411
|
-
|
|
412
|
-
- name: Run PXE inventory chain test
|
|
413
|
-
run: make test-pxe-inventory
|
|
414
|
-
|
|
415
|
-
- name: Upload cijoe output
|
|
416
|
-
if: always()
|
|
417
|
-
uses: actions/upload-artifact@v7
|
|
418
|
-
with:
|
|
419
|
-
name: cijoe-output-test-pxe-inventory
|
|
420
|
-
path: cijoe/cijoe-output
|
|
421
|
-
if-no-files-found: warn
|
|
422
|
-
|
|
423
|
-
- name: Upload PXE workspace (serial logs, dnsmasq.log)
|
|
424
|
-
if: always()
|
|
425
|
-
uses: actions/upload-artifact@v7
|
|
426
|
-
with:
|
|
427
|
-
name: test-pxe-inventory-workspace
|
|
428
|
-
path: cijoe/_build/test-pxe
|
|
429
|
-
if-no-files-found: warn
|
|
430
|
-
|
|
431
|
-
test-pxe-flash:
|
|
432
|
-
name: PXE flash chain test (containerized pixie + client QEMU VM)
|
|
433
|
-
# Same artifact dependency as test-pxe-inventory (the netboot-pc
|
|
434
|
-
# bake for the live-env media). qemu-utils lands qemu-img which
|
|
435
|
-
# we use to read the client disk's sector 0 for a boot-signature
|
|
436
|
-
# check without a full-disk convert.
|
|
356
|
+
test-pxe-live-env-modes:
|
|
357
|
+
name: PXE live-env modes chain test (containerized pixie + client QEMU VM)
|
|
358
|
+
# Consolidated: nbdboots the pixie-live-env image ONCE, then runs
|
|
359
|
+
# pixie-inventory / -tui / -flash-once against it in sequence (one
|
|
360
|
+
# heavy image fetch, three client boots, destructive flash last).
|
|
361
|
+
# Fetches the pinned pixie-live-env release image (https) + its
|
|
362
|
+
# arch-headless netboot bundle (oras) + the nosi flash target
|
|
363
|
+
# (oras). No build-media dependency.
|
|
437
364
|
#
|
|
438
|
-
#
|
|
439
|
-
#
|
|
440
|
-
#
|
|
441
|
-
# 16 MiB marker file the earlier test-pxe-flash iterations used.
|
|
442
|
-
needs: build-media
|
|
365
|
+
# 90 min: the pixie-live-env img.gz fetch + the flash submode's
|
|
366
|
+
# ~2.6 GiB nosi image pull/decompress + three sequential QEMU boots
|
|
367
|
+
# dominate wall clock.
|
|
443
368
|
runs-on: ubuntu-latest
|
|
444
|
-
timeout-minutes:
|
|
369
|
+
timeout-minutes: 90
|
|
445
370
|
steps:
|
|
446
371
|
- uses: actions/checkout@v6
|
|
447
372
|
|
|
@@ -465,152 +390,14 @@ jobs:
|
|
|
465
390
|
- name: Install uv
|
|
466
391
|
uses: astral-sh/setup-uv@v8.1.0
|
|
467
392
|
|
|
468
|
-
- name:
|
|
469
|
-
|
|
470
|
-
with:
|
|
471
|
-
name: pixie-netboot-pc-x86_64
|
|
472
|
-
path: ~/system_imaging/disk/
|
|
473
|
-
|
|
474
|
-
- name: Show downloaded artifact contents
|
|
475
|
-
run: |
|
|
476
|
-
set -eu
|
|
477
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
478
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
479
|
-
|
|
480
|
-
- name: Run PXE flash chain test
|
|
481
|
-
run: make test-pxe-flash
|
|
482
|
-
|
|
483
|
-
- name: Upload cijoe output
|
|
484
|
-
if: always()
|
|
485
|
-
uses: actions/upload-artifact@v7
|
|
486
|
-
with:
|
|
487
|
-
name: cijoe-output-test-pxe-flash
|
|
488
|
-
path: cijoe/cijoe-output
|
|
489
|
-
if-no-files-found: warn
|
|
490
|
-
|
|
491
|
-
- name: Upload PXE workspace (serial logs, dnsmasq.log)
|
|
492
|
-
if: always()
|
|
493
|
-
uses: actions/upload-artifact@v7
|
|
494
|
-
with:
|
|
495
|
-
name: test-pxe-flash-workspace
|
|
496
|
-
path: cijoe/_build/test-pxe
|
|
497
|
-
if-no-files-found: warn
|
|
498
|
-
|
|
499
|
-
test-pxe-flash-always:
|
|
500
|
-
name: PXE flash-always chain test (containerized pixie + client QEMU VM)
|
|
501
|
-
# Same dependencies + real-nosi pipeline as test-pxe-flash. The
|
|
502
|
-
# difference is a one-line config knob + an inverted assertion:
|
|
503
|
-
# pixie-flash-always must NOT flip its bind on the CLI's /done.
|
|
504
|
-
# 60 min for the same reasons -- real oras pull dominates.
|
|
505
|
-
needs: build-media
|
|
506
|
-
runs-on: ubuntu-latest
|
|
507
|
-
timeout-minutes: 60
|
|
508
|
-
steps:
|
|
509
|
-
- uses: actions/checkout@v6
|
|
510
|
-
|
|
511
|
-
- name: Install host tools (qemu, dnsmasq, ipxe, bridge)
|
|
512
|
-
run: |
|
|
513
|
-
set -eu
|
|
514
|
-
sudo apt-get update
|
|
515
|
-
sudo apt-get install -y --no-install-recommends \
|
|
516
|
-
qemu-system-x86 \
|
|
517
|
-
qemu-utils \
|
|
518
|
-
dnsmasq \
|
|
519
|
-
ipxe \
|
|
520
|
-
bridge-utils \
|
|
521
|
-
iproute2
|
|
522
|
-
sudo chmod a+rw /dev/kvm
|
|
523
|
-
ls -la /dev/kvm
|
|
524
|
-
|
|
525
|
-
- name: Install cijoe
|
|
526
|
-
run: pipx install --force cijoe
|
|
527
|
-
|
|
528
|
-
- name: Install uv
|
|
529
|
-
uses: astral-sh/setup-uv@v8.1.0
|
|
530
|
-
|
|
531
|
-
- name: Download netboot-pc bake artifacts
|
|
532
|
-
uses: actions/download-artifact@v7
|
|
533
|
-
with:
|
|
534
|
-
name: pixie-netboot-pc-x86_64
|
|
535
|
-
path: ~/system_imaging/disk/
|
|
536
|
-
|
|
537
|
-
- name: Show downloaded artifact contents
|
|
538
|
-
run: |
|
|
539
|
-
set -eu
|
|
540
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
541
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
542
|
-
|
|
543
|
-
- name: Run PXE flash-always chain test
|
|
544
|
-
run: make test-pxe-flash-always
|
|
545
|
-
|
|
546
|
-
- name: Upload cijoe output
|
|
547
|
-
if: always()
|
|
548
|
-
uses: actions/upload-artifact@v7
|
|
549
|
-
with:
|
|
550
|
-
name: cijoe-output-test-pxe-flash-always
|
|
551
|
-
path: cijoe/cijoe-output
|
|
552
|
-
if-no-files-found: warn
|
|
553
|
-
|
|
554
|
-
- name: Upload PXE workspace (serial logs, dnsmasq.log)
|
|
555
|
-
if: always()
|
|
556
|
-
uses: actions/upload-artifact@v7
|
|
557
|
-
with:
|
|
558
|
-
name: test-pxe-flash-always-workspace
|
|
559
|
-
path: cijoe/_build/test-pxe
|
|
560
|
-
if-no-files-found: warn
|
|
561
|
-
|
|
562
|
-
test-pxe-tui:
|
|
563
|
-
name: PXE tui chain test (containerized pixie + client QEMU VM)
|
|
564
|
-
# Same live-env media dependency as test-pxe-flash. No qemu-utils
|
|
565
|
-
# here -- the tui test does not read the target disk; it just
|
|
566
|
-
# asserts the wizard entered its picker screen (a serial marker
|
|
567
|
-
# coming out of pixie CLI's _screen_select_image).
|
|
568
|
-
needs: build-media
|
|
569
|
-
runs-on: ubuntu-latest
|
|
570
|
-
timeout-minutes: 30
|
|
571
|
-
steps:
|
|
572
|
-
- uses: actions/checkout@v6
|
|
573
|
-
|
|
574
|
-
- name: Install host tools (qemu, dnsmasq, ipxe, bridge)
|
|
575
|
-
run: |
|
|
576
|
-
set -eu
|
|
577
|
-
sudo apt-get update
|
|
578
|
-
sudo apt-get install -y --no-install-recommends \
|
|
579
|
-
qemu-system-x86 \
|
|
580
|
-
qemu-utils \
|
|
581
|
-
dnsmasq \
|
|
582
|
-
ipxe \
|
|
583
|
-
bridge-utils \
|
|
584
|
-
iproute2
|
|
585
|
-
sudo chmod a+rw /dev/kvm
|
|
586
|
-
ls -la /dev/kvm
|
|
587
|
-
|
|
588
|
-
- name: Install cijoe
|
|
589
|
-
run: pipx install --force cijoe
|
|
590
|
-
|
|
591
|
-
- name: Install uv
|
|
592
|
-
uses: astral-sh/setup-uv@v8.1.0
|
|
593
|
-
|
|
594
|
-
- name: Download netboot-pc bake artifacts
|
|
595
|
-
uses: actions/download-artifact@v7
|
|
596
|
-
with:
|
|
597
|
-
name: pixie-netboot-pc-x86_64
|
|
598
|
-
path: ~/system_imaging/disk/
|
|
599
|
-
|
|
600
|
-
- name: Show downloaded artifact contents
|
|
601
|
-
run: |
|
|
602
|
-
set -eu
|
|
603
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
604
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
605
|
-
|
|
606
|
-
- name: Run PXE tui chain test
|
|
607
|
-
run: make test-pxe-tui
|
|
393
|
+
- name: Run PXE live-env modes chain test
|
|
394
|
+
run: make test-pxe-live-env-modes
|
|
608
395
|
|
|
609
396
|
- name: Upload cijoe output
|
|
610
397
|
if: always()
|
|
611
398
|
uses: actions/upload-artifact@v7
|
|
612
399
|
with:
|
|
613
|
-
name: cijoe-output-test-pxe-
|
|
400
|
+
name: cijoe-output-test-pxe-live-env-modes
|
|
614
401
|
path: cijoe/cijoe-output
|
|
615
402
|
if-no-files-found: warn
|
|
616
403
|
|
|
@@ -618,7 +405,7 @@ jobs:
|
|
|
618
405
|
if: always()
|
|
619
406
|
uses: actions/upload-artifact@v7
|
|
620
407
|
with:
|
|
621
|
-
name: test-pxe-
|
|
408
|
+
name: test-pxe-live-env-modes-workspace
|
|
622
409
|
path: cijoe/_build/test-pxe
|
|
623
410
|
if-no-files-found: warn
|
|
624
411
|
|
|
@@ -714,10 +501,7 @@ jobs:
|
|
|
714
501
|
- build-live-env-image
|
|
715
502
|
- test-pxe
|
|
716
503
|
- test-pxe-nbdboot
|
|
717
|
-
- test-pxe-
|
|
718
|
-
- test-pxe-tui
|
|
719
|
-
- test-pxe-flash
|
|
720
|
-
- test-pxe-flash-always
|
|
504
|
+
- test-pxe-live-env-modes
|
|
721
505
|
- verify-usbboot
|
|
722
506
|
runs-on: ubuntu-latest
|
|
723
507
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
@@ -757,10 +541,7 @@ jobs:
|
|
|
757
541
|
- build-live-env-image
|
|
758
542
|
- test-pxe
|
|
759
543
|
- test-pxe-nbdboot
|
|
760
|
-
- test-pxe-
|
|
761
|
-
- test-pxe-tui
|
|
762
|
-
- test-pxe-flash
|
|
763
|
-
- test-pxe-flash-always
|
|
544
|
+
- test-pxe-live-env-modes
|
|
764
545
|
- verify-usbboot
|
|
765
546
|
runs-on: ubuntu-latest
|
|
766
547
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
@@ -788,11 +569,11 @@ jobs:
|
|
|
788
569
|
|
|
789
570
|
publish-release:
|
|
790
571
|
name: Publish GitHub Release (media assets)
|
|
791
|
-
# Attach the media CI already builds -- the
|
|
792
|
-
#
|
|
793
|
-
#
|
|
794
|
-
#
|
|
795
|
-
#
|
|
572
|
+
# Attach the media CI already builds -- the pixie-live-env nbdboot
|
|
573
|
+
# image and the usbboot-pc bootable .iso -- to a GitHub Release on
|
|
574
|
+
# v* tags. Before this they only existed as ephemeral, login-gated
|
|
575
|
+
# workflow artifacts, so an operator had no released live-env or
|
|
576
|
+
# USB image to download. Same
|
|
796
577
|
# full-pipeline gate as the other publish jobs.
|
|
797
578
|
needs:
|
|
798
579
|
- test
|
|
@@ -803,10 +584,7 @@ jobs:
|
|
|
803
584
|
- build-live-env-image
|
|
804
585
|
- test-pxe
|
|
805
586
|
- test-pxe-nbdboot
|
|
806
|
-
- test-pxe-
|
|
807
|
-
- test-pxe-tui
|
|
808
|
-
- test-pxe-flash
|
|
809
|
-
- test-pxe-flash-always
|
|
587
|
+
- test-pxe-live-env-modes
|
|
810
588
|
- verify-usbboot
|
|
811
589
|
runs-on: ubuntu-latest
|
|
812
590
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
@@ -817,9 +595,7 @@ jobs:
|
|
|
817
595
|
- name: Download media artifacts
|
|
818
596
|
uses: actions/download-artifact@v8
|
|
819
597
|
with:
|
|
820
|
-
#
|
|
821
|
-
# ``pixie-netboot-pc-x86_64`` + ``pixie-usbboot-pc-x86_64``.
|
|
822
|
-
# merge-multiple flattens both into one directory.
|
|
598
|
+
# build-media uploads the usbboot-pc .iso under this shape.
|
|
823
599
|
pattern: pixie-*-pc-x86_64
|
|
824
600
|
merge-multiple: true
|
|
825
601
|
path: release-assets
|
|
@@ -834,25 +610,13 @@ jobs:
|
|
|
834
610
|
path: release-assets
|
|
835
611
|
- name: List release assets
|
|
836
612
|
run: ls -la release-assets
|
|
837
|
-
- name:
|
|
838
|
-
#
|
|
839
|
-
#
|
|
840
|
-
#
|
|
841
|
-
#
|
|
842
|
-
# -- the default PIXIE_LIVE_ENV_SRC -- resolves.
|
|
613
|
+
- name: Stage curated catalog
|
|
614
|
+
# Ship the curated catalog (the nosi subset + the pixie-live-env
|
|
615
|
+
# image) so DEFAULT_CATALOG_URL
|
|
616
|
+
# (.../releases/latest/download/catalog.toml) resolves and
|
|
617
|
+
# pixie's Import + live-env TUI default work.
|
|
843
618
|
run: |
|
|
844
619
|
set -eu
|
|
845
|
-
d=$(mktemp -d)
|
|
846
|
-
cp release-assets/pixie-netboot-pc-x86_64-*.vmlinuz "$d/vmlinuz"
|
|
847
|
-
cp release-assets/pixie-netboot-pc-x86_64-*.initrd "$d/initrd"
|
|
848
|
-
cp release-assets/pixie-netboot-pc-x86_64-*.squashfs "$d/live.squashfs"
|
|
849
|
-
tar -C "$d" -czf release-assets/pixie-live-env-x86_64.tar.gz \
|
|
850
|
-
vmlinuz initrd live.squashfs
|
|
851
|
-
( cd release-assets && sha256sum pixie-live-env-x86_64.tar.gz \
|
|
852
|
-
> pixie-live-env-x86_64.tar.gz.sha256 )
|
|
853
|
-
# Ship the curated catalog (the netboot-capable nosi subset)
|
|
854
|
-
# so DEFAULT_CATALOG_URL (.../releases/latest/download/catalog.toml)
|
|
855
|
-
# resolves and pixie's Import + live-env TUI default work.
|
|
856
620
|
cp src/pixie/catalog/catalog.toml release-assets/catalog.toml
|
|
857
621
|
ls -la release-assets
|
|
858
622
|
- name: Create / update GitHub Release
|
|
@@ -874,7 +638,5 @@ jobs:
|
|
|
874
638
|
- `pixie-live-env-x86_64.img.gz` — the **nbdboot** live-env image: the nosi `arch-headless` base disk image with the pixie CLI + `pixie-on-tty1` service injected. Fetch it from the **Catalog** tab (it seeds into a fresh catalog), then set `PIXIE_LIVE_ENV_IMAGE_SHA` to select it for the `pixie-flash-once` / `pixie-flash-always` / `pixie-inventory` / `pixie-tui` boot modes so they nbdboot this image ephemerally.
|
|
875
639
|
- `pixie-live-env-x86_64.content-sha256` — the raw-image sha256 to set `PIXIE_LIVE_ENV_IMAGE_SHA` to (identical to the `content_sha256` pixie assigns after fetching the `pixie-live-env` catalog entry).
|
|
876
640
|
- `pixie-live-env-catalog.toml` — the catalog fragment (the `pixie-live-env` disk image + its arch-headless netboot bundle) with `content_sha256` filled in; the shipped `catalog.toml` also lists these entries.
|
|
877
|
-
- `pixie-
|
|
878
|
-
- `pixie-netboot-pc-x86_64-*.{vmlinuz,initrd,squashfs}` — the squashfs live-env (netboot-pc bake) as loose files, if you prefer to stage `PIXIE_LIVE_ENV_DIR` (`data/live-env/`) by hand.
|
|
879
|
-
- `pixie-usbboot-pc-x86_64-*.iso` — bootable USB / ISO media for the pixie live env (uncompressed; `dd` / Etcher / Ventoy ready).
|
|
641
|
+
- `pixie-usbboot-pc-x86_64-*.iso` — bootable USB / ISO media for ad-hoc flash-install of images (uncompressed; `dd` / Etcher / Ventoy ready).
|
|
880
642
|
- `*.sha256` — checksums for the above.
|
|
@@ -11,6 +11,23 @@ operator-facing summary.
|
|
|
11
11
|
|
|
12
12
|
## [Unreleased]
|
|
13
13
|
|
|
14
|
+
## [0.4.3] - 2026-07-26
|
|
15
|
+
|
|
16
|
+
### Removed
|
|
17
|
+
|
|
18
|
+
**The squashfs live-env path is retired.** The live-env boot modes
|
|
19
|
+
(`pixie-inventory` / `pixie-tui` / `pixie-flash-once` / `pixie-flash-always`)
|
|
20
|
+
now boot the disk image selected by `PIXIE_LIVE_ENV_IMAGE_SHA` over
|
|
21
|
+
ephemeral nbdboot, full stop -- the old Debian live-boot squashfs
|
|
22
|
+
delivery is gone. Removed: the `boot=live fetch=<squashfs>` render
|
|
23
|
+
fallback (an unset image sha now degrades to the unavailable plan, so
|
|
24
|
+
select an image on the Live env page), the in-app "Fetch live-env"
|
|
25
|
+
action and `/ui/live-env/src/edit` route, the `PIXIE_LIVE_ENV_SRC` /
|
|
26
|
+
`PIXIE_LIVE_ENV_DIR` settings and the `/boot/pixie-live-env` mount, and
|
|
27
|
+
the `netboot-pc` live-build bake (with its `pixie-live-env-x86_64.tar.gz`
|
|
28
|
+
release asset). The `usbboot-pc` bootable `.iso` -- for ad-hoc
|
|
29
|
+
flash-install of images -- is unchanged.
|
|
30
|
+
|
|
14
31
|
## [0.4.2] - 2026-07-26
|
|
15
32
|
|
|
16
33
|
### Added
|
|
@@ -9,15 +9,11 @@ VARIANT ?= usbboot-pc
|
|
|
9
9
|
|
|
10
10
|
# Per-variant cijoe workflow file under cijoe/tasks/. The variant
|
|
11
11
|
# string carries the hardware family (``pc`` for generic x86 BIOS /
|
|
12
|
-
# UEFI boxes) and the boot source (``
|
|
13
|
-
#
|
|
14
|
-
# initial pixie port; when it lands it will follow bty's precedent
|
|
15
|
-
# customising Raspberry Pi OS in place on a native arm64 host.
|
|
16
|
-
ifeq ($(VARIANT),netboot-pc)
|
|
17
|
-
MEDIA_TASK := tasks/netboot-pc.yaml
|
|
18
|
-
else
|
|
12
|
+
# UEFI boxes) and the boot source (``usbboot`` for direct disk media,
|
|
13
|
+
# the bootable .iso for ad-hoc flash-install). arm64 / RPi is out of
|
|
14
|
+
# the initial pixie port; when it lands it will follow bty's precedent
|
|
15
|
+
# of customising Raspberry Pi OS in place on a native arm64 host.
|
|
19
16
|
MEDIA_TASK := tasks/usbboot-pc.yaml
|
|
20
|
-
endif
|
|
21
17
|
|
|
22
18
|
.DEFAULT_GOAL := help
|
|
23
19
|
|
|
@@ -49,21 +45,12 @@ help:
|
|
|
49
45
|
@echo " test-pxe end-to-end PXE bootstrap chain test"
|
|
50
46
|
@echo " (needs podman + QEMU + KVM + dnsmasq; a few min wall clock)"
|
|
51
47
|
@echo " test-pxe-nbdboot end-to-end PXE nbdboot chain test"
|
|
52
|
-
@echo " (same deps as test-pxe +
|
|
53
|
-
@echo " test-pxe-inventory end-to-end PXE pixie-inventory chain test"
|
|
54
|
-
@echo " (same deps as test-pxe-nbdboot; no catalog seed)"
|
|
55
|
-
@echo " test-pxe-flash end-to-end PXE pixie-flash-once chain test"
|
|
56
|
-
@echo " (same deps as test-pxe-inventory; small synthetic image)"
|
|
57
|
-
@echo " test-pxe-flash-always end-to-end PXE pixie-flash-always chain test"
|
|
58
|
-
@echo " (same deps as test-pxe-flash; asserts no /done flip)"
|
|
59
|
-
@echo " test-pxe-tui end-to-end PXE pixie-tui chain test"
|
|
60
|
-
@echo " (same deps as test-pxe-flash; asserts wizard entry)"
|
|
48
|
+
@echo " (same deps as test-pxe + internet for the real nosi oras pulls)"
|
|
61
49
|
@echo " test-usb-ventoy structural + Ventoy-boot verify of the usbboot .iso"
|
|
62
50
|
@echo " (needs a prior VARIANT=usbboot-pc bake + qemu/KVM/OVMF + ventoy deps)"
|
|
63
51
|
@echo ""
|
|
64
|
-
@echo "Variant: $(VARIANT)
|
|
52
|
+
@echo "Variant: $(VARIANT)"
|
|
65
53
|
@echo " usbboot-pc - bootable USB live ISO via live-build (.iso, x86_64)"
|
|
66
|
-
@echo " netboot-pc - kernel + initrd + squashfs trio for PXE-flash clients (x86_64)"
|
|
67
54
|
@echo ""
|
|
68
55
|
@echo "Cleanup:"
|
|
69
56
|
@echo " clean remove build artifacts (dist/, cijoe-output, _build, caches)"
|
|
@@ -135,49 +122,21 @@ ipxe:
|
|
|
135
122
|
test-pxe:
|
|
136
123
|
cd cijoe && cijoe tasks/test-pxe.yaml --monitor -c configs/test-pxe.toml
|
|
137
124
|
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
# image, bind the client MAC to
|
|
141
|
-
# assert every marker in
|
|
142
|
-
#
|
|
143
|
-
#
|
|
144
|
-
# ``~/system_imaging/disk/`` (or PIXIE_NETBOOT_ARTIFACT_DIR).
|
|
125
|
+
# Nbdboot chain test: bring up pixie, POST /ui/catalog/import with a
|
|
126
|
+
# pinned nosi catalog, fetch the real nosi debian-13-headless-netboot
|
|
127
|
+
# bundle + disk image over oras, bind the client MAC to
|
|
128
|
+
# boot_mode=nbdboot, PXE-boot QEMU, and assert every marker in
|
|
129
|
+
# cijoe/configs/test-pxe-nbdboot.toml shows up through the initramfs
|
|
130
|
+
# nbdboot script. Needs internet to ghcr.io + github.com/safl/nosi.
|
|
145
131
|
test-pxe-nbdboot:
|
|
146
132
|
cd cijoe && cijoe tasks/test-pxe-nbdboot.yaml --monitor -c configs/test-pxe-nbdboot.toml
|
|
147
133
|
|
|
148
|
-
#
|
|
149
|
-
#
|
|
150
|
-
#
|
|
151
|
-
#
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
test-pxe-inventory:
|
|
155
|
-
cd cijoe && cijoe tasks/test-pxe-inventory.yaml --monitor -c configs/test-pxe-inventory.toml
|
|
156
|
-
|
|
157
|
-
# Flash chain test: bring up pixie with the netboot-pc bake bind-mounted
|
|
158
|
-
# as its live-env dir, seed the catalog with a small (16 MiB) synthetic
|
|
159
|
-
# image whose first bytes carry a marker, bind the client MAC to
|
|
160
|
-
# boot_mode=pixie-flash-once + target_disk_serial=PIXIETEST, PXE-boot
|
|
161
|
-
# QEMU, and assert the live-env's pixie CLI auto-flashes the image +
|
|
162
|
-
# POSTs status=done. Same artifact dependency as test-pxe-inventory
|
|
163
|
-
# (needs the netboot-pc bake).
|
|
164
|
-
test-pxe-flash:
|
|
165
|
-
cd cijoe && cijoe tasks/test-pxe-flash.yaml --monitor -c configs/test-pxe-flash.toml
|
|
166
|
-
|
|
167
|
-
# Flash-always chain test: mirrors test-pxe-flash but binds
|
|
168
|
-
# boot_mode=pixie-flash-always. Same wire; the post-chain assertion
|
|
169
|
-
# inverts (mode must NOT flip to ipxe-exit on the CLI's /done POST).
|
|
170
|
-
test-pxe-flash-always:
|
|
171
|
-
cd cijoe && cijoe tasks/test-pxe-flash-always.yaml --monitor -c configs/test-pxe-flash-always.toml
|
|
172
|
-
|
|
173
|
-
# TUI chain test: binds boot_mode=pixie-tui, asserts the CLI reaches
|
|
174
|
-
# the interactive wizard's SELECT_IMAGE screen (proves the plan
|
|
175
|
-
# dispatch AND the /catalog.toml catalog wire between server + CLI).
|
|
176
|
-
# Does not drive the wizard's inputs; that would need QMP send-key
|
|
177
|
-
# and the flash pipeline past the pick is already covered by
|
|
178
|
-
# test-pxe-flash.
|
|
179
|
-
test-pxe-tui:
|
|
180
|
-
cd cijoe && cijoe tasks/test-pxe-tui.yaml --monitor -c configs/test-pxe-tui.toml
|
|
134
|
+
# Consolidated live-env-modes chain: nbdboots the pixie-live-env image
|
|
135
|
+
# once, then exercises pixie-inventory / -tui / -flash-once against it
|
|
136
|
+
# in sequence. Needs the same host tools as test-pxe + internet for the
|
|
137
|
+
# pixie-live-env release image + arch bundle + nosi flash target.
|
|
138
|
+
test-pxe-live-env-modes:
|
|
139
|
+
cd cijoe && cijoe tasks/test-pxe-live-env-modes.yaml --monitor -c configs/test-pxe-live-env-modes.toml
|
|
181
140
|
|
|
182
141
|
# Structural + Ventoy-boot verification of the usbboot .iso. Needs a
|
|
183
142
|
# prior VARIANT=usbboot-pc bake staged under ~/system_imaging/disk/ (or
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pixie-lab
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3
|
|
4
4
|
Summary: Bare-metal netboot appliance: catalog + fetch + NBD + PXE + TFTP + operator TUI in one container
|
|
5
5
|
Project-URL: Homepage, https://github.com/safl/pixie
|
|
6
6
|
Project-URL: Repository, https://github.com/safl/pixie
|