wip: pipeline with nushell #10

Draft
omarz wants to merge 19 commits from pipeline into main
Member
No description provided.
- Introduced `network.nu` for managing libvirt networks, firewall rules, and TAP interfaces, replacing the previous `network.sh` script.
- Added `vm.nu` for launching VMs with QEMU and Cloud Hypervisor, including MAC address derivation and network setup.
- Implemented `volumes.nu` for disk volume management, allowing creation and resetting of disk images.
- Updated `mos.nu` to dispatch `run` and `net` commands to the new native implementations, enhancing type safety and usability.
- Removed legacy Bash scripts for network and VM management, streamlining the codebase.
- Replaced the existing bash script for managing the development container with a new implementation in Nu shell (scripts/mos.nu, scripts/lib/dev.nu).
- Introduced a new cleanup module (scripts/lib/clean.nu) to handle build artifact and container image cleanup.
- Removed legacy reset scripts (reset-all.sh, reset-alpine.sh, reset-components.sh, reset-initramfs.sh, reset-kernel.sh, reset-modules.sh, reset-myfs.sh) in favor of the new cleanup functionality.
- Updated the main command interface to support new clean and dev subcommands, enhancing usability and functionality.
- Ensured backward compatibility by maintaining a thin shim in the original dev-container.sh script.
- Added `mos clean` command for build-state cleanup and stage-marker reset.
- Introduced `mos dev` command for managing persistent development container lifecycle.
- Implemented `mos env` command for introspection of resolved directories and build configuration.
- Created `mos net` command for network setup and teardown using libvirt.
- Added `mos run` command to launch Mycelium OS VM with various configurations.
- Implemented `bash_bridge` for invoking bash functions from Nu scripts during the transition phase.
- Enhanced `paths` library to resolve project root dynamically.
- Added `stages` library for tracking build stage completion and management.
- Refactored `mos.nu` to utilize new command structure and improve clarity.
- Added kernel build functionality with support for downloading source, applying configuration, and building modules.
- Introduced S3 upload capability for kernel images and generated kernel index files.
- Replaced bash scripts with Nu functions for better integration and performance.
- Created myfs module for packing firmware and modules into initramfs.
- Removed legacy bash stage tracking script in favor of Nu-based stage management.
- Updated mos command to utilize new Nu implementations for testing and USB creation.
- Introduced `testing.nu` to handle boot testing with QEMU and cloud-hypervisor, providing a more structured and modern approach.
- Removed legacy Bash scripts (`testing.sh`, `pack-tree.sh`, `patch-stores.sh`, `verify-flist.sh`) to streamline the codebase and improve maintainability.
- Implemented logging and error handling in the new Nu shell scripts for better debugging and user feedback.
- Updated boot log analysis to identify success and error patterns effectively.
- Enhanced command execution with timeout handling for both QEMU and cloud-hypervisor tests.
feat: Refactor build stages and cleanup pipeline to enhance clarity and remove redundant tests
Some checks failed
Build MOS Initramfs / build (pull_request) Failing after 2s
70ba537849
feat: Consolidate build/rebuild commands with config-mtime auto-invalidation (ADR 0006)
Some checks failed
Build MOS Initramfs / build (pull_request) Failing after 2s
bd013498b3
Fold `mos rebuild` into `mos build`. Add auto-invalidation that detects
stale stages by comparing config file mtimes against marker mtimes, then
sets REBUILD_FROM_STAGE to the earliest stale stage. Rename
`--rebuild-from` to `--build-from`; add `--verify-only` and
`--no-auto-invalidate`. Extract PHASES / ALL_STAGES / STAGE_GROUPS and
new CONFIG_DEPS into scripts/lib/stage_registry.nu as the single source
of truth, eliminating three-way drift between stages.nu, clean.nu, and
the deleted rebuild.nu.
back
Some checks failed
Build MOS Initramfs / build (pull_request) Failing after 3s
4f886ac80f
omarz force-pushed pipeline from 4f886ac80f
Some checks failed
Build MOS Initramfs / build (pull_request) Failing after 3s
to bd013498b3
Some checks failed
Build MOS Initramfs / build (pull_request) Failing after 2s
2026-04-22 13:52:58 +00:00
Compare
Some checks failed
Build MOS Initramfs / build (pull_request) Failing after 2s
This pull request has changes conflicting with the target branch.
  • config/sources.conf
  • scripts/dev-container.sh
  • scripts/lib/alpine.sh
  • scripts/lib/components.sh
  • scripts/lib/docker.sh
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin pipeline:pipeline
git switch pipeline

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff pipeline
git switch pipeline
git rebase main
git switch main
git merge --ff-only pipeline
git switch pipeline
git rebase main
git switch main
git merge --no-ff pipeline
git switch main
git merge --squash pipeline
git switch main
git merge --ff-only pipeline
git switch main
git merge pipeline
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
geomind_code/mos_builder!10
No description provided.