runners.rs

 1pub const LINUX_SMALL: Runner = Runner("namespace-profile-2x4-ubuntu-2404");
 2pub const LINUX_DEFAULT: Runner = LINUX_XL;
 3pub const LINUX_XL: Runner = Runner("namespace-profile-16x32-ubuntu-2204");
 4pub const LINUX_LARGE: Runner = Runner("namespace-profile-8x16-ubuntu-2204");
 5pub const LINUX_MEDIUM: Runner = Runner("namespace-profile-4x8-ubuntu-2204");
 6
 7// Using Ubuntu 20.04 for minimal glibc version
 8pub const LINUX_X86_BUNDLER: Runner = Runner("namespace-profile-32x64-ubuntu-2004");
 9pub const LINUX_ARM_BUNDLER: Runner = Runner("namespace-profile-8x32-ubuntu-2004-arm-m4");
10
11// Larger Ubuntu runner with glibc 2.39 for extension bundling
12pub const LINUX_LARGE_RAM: Runner = Runner("namespace-profile-8x32-ubuntu-2404");
13
14pub const MAC_DEFAULT: Runner = Runner("self-mini-macos");
15pub const WINDOWS_DEFAULT: Runner = Runner("self-32vcpu-windows-2022");
16
17pub struct Runner(&'static str);
18
19impl Into<gh_workflow::RunsOn> for Runner {
20    fn into(self) -> gh_workflow::RunsOn {
21        self.0.into()
22    }
23}
24
25#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
26pub enum Arch {
27    X86_64,
28    AARCH64,
29}
30
31impl std::fmt::Display for Arch {
32    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
33        match self {
34            Arch::X86_64 => write!(f, "x86_64"),
35            Arch::AARCH64 => write!(f, "aarch64"),
36        }
37    }
38}
39
40impl Arch {
41    pub fn linux_bundler(&self) -> Runner {
42        match self {
43            Arch::X86_64 => LINUX_X86_BUNDLER,
44            Arch::AARCH64 => LINUX_ARM_BUNDLER,
45        }
46    }
47}
48
49#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
50pub enum Platform {
51    Windows,
52    Linux,
53    Mac,
54}
55
56impl std::fmt::Display for Platform {
57    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
58        match self {
59            Platform::Windows => write!(f, "windows"),
60            Platform::Linux => write!(f, "linux"),
61            Platform::Mac => write!(f, "mac"),
62        }
63    }
64}
65
66#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
67pub enum ReleaseChannel {
68    Nightly,
69}