RadBuild 0.2.1

Example: RADPx OS Terminal Image

Example: RADPx OS Terminal Image

settings.json

{
  "radbuild_schema": "2.0",
  "radbuild_version": "0.2.1",
  "project_name": "RADPx-OS Terminal",
  "systems": [
    {
      "id": "radpx-x86-64-grub-terminal",
      "type": "os.radpx",
      "provider": "radpx-os",
      "depends_on": [],
      "config": {
        "target": "x86_64-grub-terminal",
        "ui_profile": "terminal",
        "source": {
          "type": "git",
          "url": "https://github.com/Radical-Computer-Technologies/RADPx-OS.git",
          "branch": "crimson-v0.1.3",
          "checkout_dir": ".radmeta/sources/RADPx-OS",
          "update": true
        },
        "feature_chunks": ["kernel.core", "kernel.x86_64", "drivers.framebuffer", "drivers.input.ps2", "drivers.block.virtio", "fs.ext4", "fs.fat", "services.radinit", "services.base-terminal", "userspace.rash"],
        "build_dir": "build/embedded/x86_64_grub_terminal",
        "smoke_script": "tools/embedded/x86_64_grub_slint_smoke.sh",
        "artifact_dir": "artifacts/radpx/x86_64-grub-terminal",
        "qemu_smp": [2],
        "rkconfig": {
          "hostname": "radpx",
          "root_password": "radpx",
          "rootfs_size_mb": 256,
          "terminal_theme": "radpx-dark",
          "terminal_autocomplete": true,
          "terminal_ncurses": true,
          "terminal_vim": true,
          "terminal_vim_variant": "tiny",
          "network_enabled": true,
          "net_ipv4": "10.0.2.15",
          "net_netmask": "255.255.255.0",
          "net_gateway": "10.0.2.2",
          "net_ntp_server": "time.google.com",
          "net_ntp_port": 123,
          "net_dns_server": "10.0.2.3",
          "dns_search": "local",
          "timezone": "America/Los_Angeles"
        },
        "radpm": {
          "repository": "../RadicalPackages",
          "suite": "experimental",
          "packages": [],
          "packagegroups": ["radpx-terminal-base", "radpx-networking"]
        },
        "sdk": {
          "enabled": true,
          "name": "radpx-sdk-x86_64-grub-terminal.tar.gz",
          "root_name": "radpx-sdk-x86_64-grub-terminal"
        }
      }
    }
  ],
  "connections": [],
  "artifacts": [],
  "deploy": [],
  "packages": {}
}

Commands

radbuild project create ./workspace --non-interactive --template radpx-os-terminal --project-name radpx-terminal
radbuild menuconfig --settings ./workspace/radpx-terminal/settings.json --list
radbuild menuconfig --settings ./workspace/radpx-terminal/settings.json --set-source branch=crimson-v0.1.3
radbuild build os --settings settings.json --json-events

Expected Artifacts

artifacts/radpx/x86_64-grub-terminal/radpxkernel-x86-64-grub-terminal.iso
artifacts/radpx/x86_64-grub-terminal/radpx-rootfs.ext4
artifacts/radpx/x86_64-grub-terminal/radpx-sdk-x86_64-grub-terminal.tar.gz
artifacts/radpx/x86_64-grub-terminal/run-radpx-vm.sh
artifacts/radpx/x86_64-grub-terminal/source-lock.json