in pkg/testing/buildkite/buildkite.go [108:185]
func getAgent(os common.SupportedOS) (StepAgent, error) {
switch os.Arch {
case define.AMD64:
switch os.Type {
case define.Linux:
switch os.Distro {
case "", "ubuntu": // default is Ubuntu
switch os.Version {
case "20.04":
return bkUbuntuAMD64_2004, nil
case "22.04":
return bkUbuntuAMD64_2204, nil
case "", "24.04": // default is 24.04
return bkUbuntuAMD64_2404, nil
default:
return StepAgent{}, fmt.Errorf("unknown ubuntu version: %s", os.Version)
}
case "rhel":
switch os.Version {
case "", "8": // default is 8
return bkRHELAMD64_8, nil
default:
return StepAgent{}, fmt.Errorf("unknown rhel version: %s", os.Version)
}
}
case define.Kubernetes:
return bkUbuntuAMD64_2404, nil
case define.Windows:
switch os.Version {
case "2019":
return bkWindowsAMD64_2019, nil
case "2019-core":
return bkWindowsAMD64_2019_Core, nil
case "", "2022": // default is 2022
return bkWindowsAMD64_2022, nil
case "2022-core":
return bkWindowsAMD64_2022_Core, nil
default:
return StepAgent{}, fmt.Errorf("unknown windows version: %s", os.Version)
}
}
case define.ARM64:
switch os.Type {
case define.Linux:
switch os.Distro {
case "", "ubuntu": // default is Ubuntu
switch os.Version {
case "20.04":
return bkUbuntuARM64_2004, nil
case "22.04":
return bkUbuntuARM64_2204, nil
case "", "24.04": // default is 24.04
return bkUbuntuARM64_2404, nil
default:
return StepAgent{}, fmt.Errorf("unknown ubuntu version: %s", os.Version)
}
case "rhel":
switch os.Version {
case "", "8": // default is 8
return bkRHELARM64_8, nil
default:
return StepAgent{}, fmt.Errorf("unknown rhel version: %s", os.Version)
}
}
case define.Kubernetes:
return bkUbuntuARM64_2404, nil
case define.Windows:
return StepAgent{}, errors.New("windows ARM support not enabled")
case define.Darwin:
return StepAgent{}, errors.New("darwin ARM support not enabled")
default:
return StepAgent{}, fmt.Errorf("unknown OS type: %s", os.Type)
}
default:
return StepAgent{}, fmt.Errorf("unknown architecture: %s", os.Arch)
}
return StepAgent{}, fmt.Errorf("case missing for %+v", os)
}