Skip to main content

flowey_hvlite/pipelines_shared/
ado_pools.rs

1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4//! Centralized list of constants enumerating available ADO build pools.
5
6use flowey::pipeline::prelude::*;
7
8use super::gh_pools::LINUX_IMAGE_AMD64;
9use super::gh_pools::WINDOWS_IMAGE_AMD64;
10
11pub const AMD_POOL_1ES: &str = "openvmm-ado-amd-westus2";
12pub const INTEL_POOL_1ES: &str = "openvmm-ado-intel-centralus";
13pub const INTEL_TDX_POOL: &str = "openvmm-ado-intel-tdx";
14
15fn ado_pool_with_image_1es(pool: &str, image: &str) -> AdoPool {
16    AdoPool {
17        name: pool.into(),
18        demands: vec![format!("ImageOverride -equals {image}")],
19    }
20}
21
22pub fn windows_intel_tdx() -> AdoPool {
23    AdoPool {
24        name: INTEL_TDX_POOL.into(),
25        demands: vec![],
26    }
27}
28
29pub fn windows_amd_1es() -> AdoPool {
30    ado_pool_with_image_1es(AMD_POOL_1ES, WINDOWS_IMAGE_AMD64)
31}
32
33pub fn windows_intel_1es() -> AdoPool {
34    ado_pool_with_image_1es(INTEL_POOL_1ES, WINDOWS_IMAGE_AMD64)
35}
36
37pub fn linux_amd_1es() -> AdoPool {
38    ado_pool_with_image_1es(AMD_POOL_1ES, LINUX_IMAGE_AMD64)
39}
40
41pub fn default_windows() -> AdoPool {
42    windows_amd_1es()
43}
44
45pub fn default_linux() -> AdoPool {
46    linux_amd_1es()
47}