Documentation
¶
Index ¶
- func DependencyReconciliation(vmconfig VirtualMachineConfig)
- func GenerateVirtualMachineSlug(config *VirtualMachineConfig) string
- func GetVirtualMachineNameWithType(config VirtualMachineConfig) string
- func GetVmCpuCount(config VirtualMachineConfig) int
- func GetVmMemoryMB(config VirtualMachineConfig) int
- func RemoveBuildArtifacts(artifacts []string)
- func RemoveBuildArtifactsForConfig(config VirtualMachineConfig)
- func RunBashScript(config RunProcessConfig)
- func RunBuildScript(config VirtualMachineConfig, executable string, args []string) error
- func RunCliCommand(workdir string, command string, args []string) ([]byte, error)
- func RunExternalProcess(config RunProcessConfig) (context.Context, error)
- func RunExternalProcessWithRetries(config RunProcessConfig) context.Context
- func RunFfmpegVideoGenerationProcess(vm_config VirtualMachineConfig, ctx context.Context, ...) context.Context
- func RunHypervUbuntuBuildOnWindows(config VirtualMachineConfig) error
- func RunHypervWindowsBuildOnWindows(config VirtualMachineConfig) error
- func RunPowerShellScript(config RunProcessConfig)
- func RunQemuUbuntuBuildOnMacOS(config VirtualMachineConfig) error
- func RunQemuWindowsBuildOnMacOS(config VirtualMachineConfig) error
- func RunVirtualBoxWindowsBuildOnWindows(config VirtualMachineConfig) error
- func RunVncSnapshotProcess(vm_config VirtualMachineConfig, ctx context.Context, ...) context.Context
- type Directories
- type HostOsType
- type ProgressBarListener
- type RunProcessConfig
- type VirtualMachineConfig
- type VirtualizationEngine
- type VncRecordingConfig
- type WebFileDependency
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DependencyReconciliation ¶
func DependencyReconciliation(vmconfig VirtualMachineConfig)
func GenerateVirtualMachineSlug ¶
func GenerateVirtualMachineSlug(config *VirtualMachineConfig) string
func GetVirtualMachineNameWithType ¶
func GetVirtualMachineNameWithType(config VirtualMachineConfig) string
func GetVmCpuCount ¶ added in v0.3.0
func GetVmCpuCount(config VirtualMachineConfig) int
GetVmCpuCount returns the resolved CPU count for the given VM config.
func GetVmMemoryMB ¶ added in v0.3.0
func GetVmMemoryMB(config VirtualMachineConfig) int
GetVmMemoryMB returns the resolved memory allocation in megabytes for the given VM config.
func RemoveBuildArtifacts ¶
func RemoveBuildArtifacts(artifacts []string)
func RemoveBuildArtifactsForConfig ¶
func RemoveBuildArtifactsForConfig(config VirtualMachineConfig)
func RunBashScript ¶
func RunBashScript(config RunProcessConfig)
func RunBuildScript ¶
func RunBuildScript(config VirtualMachineConfig, executable string, args []string) error
func RunCliCommand ¶ added in v0.2.0
func RunExternalProcess ¶
func RunExternalProcess(config RunProcessConfig) (context.Context, error)
func RunExternalProcessWithRetries ¶
func RunExternalProcessWithRetries(config RunProcessConfig) context.Context
func RunFfmpegVideoGenerationProcess ¶
func RunFfmpegVideoGenerationProcess(vm_config VirtualMachineConfig, ctx context.Context, process_config RunProcessConfig, recording_config *VncRecordingConfig) context.Context
func RunHypervUbuntuBuildOnWindows ¶ added in v0.3.0
func RunHypervUbuntuBuildOnWindows(config VirtualMachineConfig) error
RunHypervUbuntuBuildOnWindows builds an Ubuntu VM using Hyper-V on Windows.
func RunHypervWindowsBuildOnWindows ¶ added in v0.2.0
func RunHypervWindowsBuildOnWindows(config VirtualMachineConfig) error
RunHypervWindowsBuildOnWindows builds a Windows 11 VM using Hyper-V on Windows. It retries early failures to handle the transient "No ip address" race condition in the Packer HyperV plugin: StepRun calls GetHostAdapterIpAddressForSwitch with no retry, and attaching a new VM to the Default Switch can briefly disrupt the host adapter's IPv4 address. This failure always occurs within the first ~30 seconds; real build failures take 30+ minutes. Retries are skipped for long-running failures to avoid wasting CI time on genuine errors.
func RunPowerShellScript ¶ added in v0.2.0
func RunPowerShellScript(config RunProcessConfig)
func RunQemuUbuntuBuildOnMacOS ¶
func RunQemuUbuntuBuildOnMacOS(config VirtualMachineConfig) error
func RunQemuWindowsBuildOnMacOS ¶
func RunQemuWindowsBuildOnMacOS(config VirtualMachineConfig) error
func RunVirtualBoxWindowsBuildOnWindows ¶ added in v0.2.0
func RunVirtualBoxWindowsBuildOnWindows(config VirtualMachineConfig) error
RunVirtualBoxWindowsBuildOnWindows builds a Windows 11 VM using VirtualBox on Windows.
func RunVncSnapshotProcess ¶
func RunVncSnapshotProcess(vm_config VirtualMachineConfig, ctx context.Context, process_config RunProcessConfig, recording_config *VncRecordingConfig) context.Context
Types ¶
type Directories ¶
func GetDirectoriesInstance ¶
func GetDirectoriesInstance() *Directories
func (*Directories) GetDirectories ¶
func (u *Directories) GetDirectories() Directories
type HostOsType ¶ added in v0.2.0
type HostOsType string
const ( HostOsLinux HostOsType = "debian" HostOsWindows HostOsType = "windows" HostOsDarwin HostOsType = "darwin" )
func GetCurrentHostOs ¶ added in v0.2.0
func GetCurrentHostOs() HostOsType
type ProgressBarListener ¶
type ProgressBarListener struct {
// contains filtered or unexported fields
}
ProgressBarListener implements getter.ProgressListener using an mpb container so that concurrent downloads render their bars cleanly on separate lines.
func (*ProgressBarListener) TrackProgress ¶
func (p *ProgressBarListener) TrackProgress(src string, current, total int64, r io.ReadCloser) io.ReadCloser
type RunProcessConfig ¶
type VirtualMachineConfig ¶
type VirtualMachineConfig struct {
OS string
Arch string
UbuntuType string
VncPort int
Slug string
ExpectedBuildArtifacts []string
HostOs HostOsType
VirtualizationEngine VirtualizationEngine
Cpus int
// MemoryMB is the desired VM memory in megabytes.
// When 0 (the default), memory is calculated automatically:
// max(4096, totalSystemMemoryMB - 4096).
MemoryMB int
Headless bool
}
func AvailableVirtualMachineConfigs ¶
func AvailableVirtualMachineConfigs() []VirtualMachineConfig
func AvailableVirtualMachineConfigsForCurrentHostOS ¶ added in v0.2.0
func AvailableVirtualMachineConfigsForCurrentHostOS() []VirtualMachineConfig
type VirtualizationEngine ¶ added in v0.2.0
type VirtualizationEngine string
const ( VirtualizationEngineQemu VirtualizationEngine = "qemu" VirtualizationEngineUtm VirtualizationEngine = "utm" VirtualizationEngineHyperv VirtualizationEngine = "hyperv" VirtualizationEngineVirtualBox VirtualizationEngine = "virtualbox" )