# ci-orchestrator config example. # # Copy to $CI_ROOT/config.toml or set $CI_CONFIG to the file path. # Environment variables (CI_ROOT, CI_TEMPLATES, CI_BUILD_VMS, CI_ARTIFACTS, # CI_KEYS, CI_VMRUN_PATH, CI_SSH_KEY_PATH, CI_GUEST_CRED_TARGET) override # anything set here. # # IMPORTANT (TOML rule): top-level keys must appear BEFORE any [section] header. # Keys placed after a [section] belong to that section, not to the root table. # Top-level orchestrator settings. vmrun_path = "C:/Program Files (x86)/VMware/VMware Workstation/vmrun.exe" ssh_key_path = "F:/CI/keys/ci_linux" guest_cred_target = "BuildVMGuest" # --------------------------------------------------------------- Windows host [paths] root = "F:/CI" templates = "F:/CI/Templates" build_vms = "F:/CI/BuildVMs" artifacts = "F:/CI/Artifacts" keys = "F:/CI/keys" # Phase B (Linux host) — uncomment after migration. # [paths] # root = "/var/lib/ci" # templates = "/var/lib/ci/templates" # build_vms = "/var/lib/ci/build-vms" # artifacts = "/var/lib/ci/artifacts" # keys = "/etc/ci/keys" # Phase C hook: backend selector. Only "workstation" is implemented in Phase A. [backend] type = "workstation" # Optional: pre-assign static IPs to build VMs via VMX guestinfo injection. # Eliminates VMware-Tools IP-detect polling (20–180 s variance) — the host # injects guestinfo.ip-assignment into each cloned VMX before vmrun start, # and the guest boot script applies the static IP immediately. # # Prerequisite: install the guest-side startup script from # template/guest-setup/linux/ci-report-ip.sh (Linux guests) # template/guest-setup/windows/ci-static-ip.ps1 (Windows guests) # and re-take the BaseClean / BaseClean-Linux snapshot. # # Pool size should equal runner capacity (default 4). # Addresses must be outside the VMnet8 DHCP range (check # /etc/vmware/vmnet8/dhcpd/dhcpd.conf — typically .128–.254). # # [ip_pool] # addresses = ["192.168.79.201", "192.168.79.202", # "192.168.79.203", "192.168.79.204"] # netmask = "255.255.255.0" # gateway = "192.168.79.2" # VMnet8 gateway; leave empty to skip default route # lease_file = "/var/lib/ci/ip-pool.json"