@@ -20,9 +20,9 @@ To balance cost/performance, we keep both types.
20
20
- building & testing LLVM shall be done on self-hosted runners.
21
21
22
22
LLVM has several flavor of self-hosted runners:
23
- - libcxx runners.
24
23
- MacOS runners for HLSL managed by Microsoft.
25
24
- GCP windows/linux runners managed by Google.
25
+ - GCP linux runners setup for libcxx managed by Google.
26
26
27
27
This document only focuses on Google's GCP hosted runners.
28
28
@@ -47,10 +47,11 @@ Any relevant differences are explicitly enumerated.
47
47
48
48
Our runners are hosted on GCP Kubernetes clusters, and use the
49
49
[ Action Runner Controller (ARC)] ( https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller ) .
50
- The clusters have 3 pools:
50
+ The clusters have 4 main pools:
51
51
- llvm-premerge-linux
52
52
- llvm-premerge-linux-service
53
53
- llvm-premerge-windows
54
+ - llvm-premerge-libcxx
54
55
55
56
** llvm-premerge-linux-service** is a fixed pool, only used to host the
56
57
services required to manage the premerge infra (controller, listeners,
@@ -64,6 +65,11 @@ are `n2d-standard-64` due to quota limitations.
64
65
VMs. Similar to the Linux pool, but this time it runs Windows workflows. In the
65
66
US West cluster, the machines are ` n2d-standard-32 ` due to quota limitations.
66
67
68
+ ** llvm-premerge-libcxx** is a auto-scaling pool with large ` n2-standard-32 `
69
+ VMs. This is similar to the Linux pool but with smaller machines tailored
70
+ to the libcxx testing workflows. In the US West Cluster, the machines are
71
+ ` n2d-standard-32 ` due to quota limitations.
72
+
67
73
### Service pool: llvm-premerge-linux-service
68
74
69
75
This pool runs all the services managing the presubmit infra.
@@ -87,7 +93,7 @@ How a job is run:
87
93
- If the instance is not reused in the next 10 minutes, the autoscaler
88
94
will turn down the instance, freeing resources.
89
95
90
- ### Worker pools : llvm-premerge-linux, llvm-premerge-windows
96
+ ### Worker pools : llvm-premerge-linux, llvm-premerge-windows, llvm-premerge-libcxx
91
97
92
98
To make sure each runner pod is scheduled on the correct pool (linux or
93
99
windows, avoiding the service pool), we use labels and taints.
@@ -98,6 +104,7 @@ So if we do not enforce limits, the controller could schedule 2 runners on
98
104
the same instance, forcing containers to share resources.
99
105
100
106
Those bits are configures in the
101
- [ linux runner configuration] ( linux_runners_values.yaml ) and
102
- [ windows runner configuration] ( windows_runner_values.yaml ) .
107
+ [ linux runner configuration] ( linux_runners_values.yaml ) ,
108
+ [ windows runner configuration] ( windows_runner_values.yaml ) , and
109
+ [ libcxx runner configuration] ( libcxx_runners_values.yaml ) .
103
110
0 commit comments