Skip to content

Commit

Permalink
feat: add windows runner instances
Browse files Browse the repository at this point in the history
* change RunnerType to include platform
* refactor asg-runner-stack to build for both platform types macOS and
windows
* add windows-runner-user-data.yaml with PowerShell script to set up
  runner
* update runner-config.json to include Windows runners for beta, prod,
  and release
* add licenses for Windows

Signed-off-by: Gavin Inglis <[email protected]>
  • Loading branch information
ginglis13 committed Sep 21, 2023
1 parent 3c7f98c commit 606e2ee
Show file tree
Hide file tree
Showing 5 changed files with 278 additions and 57 deletions.
117 changes: 94 additions & 23 deletions config/runner-config.json
Original file line number Diff line number Diff line change
@@ -1,152 +1,223 @@
{
"runnerBeta": {
"licenseArn": "arn:aws:license-manager:us-west-2:820462304213:license-configuration:lic-7ac3e249bd13f71b44ac34963a8c3353",
"macLicenseArn": "arn:aws:license-manager:us-west-2:820462304213:license-configuration:lic-7ac3e249bd13f71b44ac34963a8c3353",
"windowsLicenseArn": "arn:aws:license-manager:us-west-2:820462304213:license-configuration:lic-56c55a611976d66a1357e58077b19e9",
"runnerTypes": [
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "arm",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"platform": "windows",
"version": "2022",
"arch": "x86",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"platform": "windows",
"version": "2022",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
}
]
},
"runnerProd": {
"licenseArn": "arn:aws:license-manager:us-west-2:090529234398:license-configuration:lic-c0c3e2458f6d2a45b0bcc8d66fbc072e",
"macLicenseArn": "arn:aws:license-manager:us-west-2:090529234398:license-configuration:lic-c0c3e2458f6d2a45b0bcc8d66fbc072e",
"windowsLicenseArn": "arn:aws:license-manager:us-west-2:090529234398:license-configuration:lic-62c55a61d2d9ce6ef100c6ea267216e6",
"runnerTypes": [
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "arm",
"repo": "finch",
"desiredInstances": 2,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "x86",
"repo": "finch",
"desiredInstances": 2,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "12.6",
"platform": "mac",
"version": "12.6",
"arch": "arm",
"repo": "finch",
"desiredInstances": 2,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "12.6",
"platform": "mac",
"version": "12.6",
"arch": "x86",
"repo": "finch",
"desiredInstances": 2,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "arm",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "12.6",
"platform": "mac",
"version": "12.6",
"arch": "arm",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"macOSVersion": "12.6",
"platform": "mac",
"version": "12.6",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"platform": "windows",
"version": "2022",
"arch": "x86",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
},
{
"platform": "windows",
"version": "2022",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-west-2a", "us-west-2b", "us-west-2c", "us-west-2d"]
}
]
},
"runnerRelease": {
"licenseArn": "arn:aws:license-manager:us-east-2:019528120233:license-configuration:lic-94c3e244cb74a70c90c82f432e9e0d91",
"macLicenseArn": "arn:aws:license-manager:us-east-2:019528120233:license-configuration:lic-94c3e244cb74a70c90c82f432e9e0d91",
"windowsLicenseArn": "arn:aws:license-manager:us-east-2:019528120233:license-configuration:lic-2ec55a6280292474f1ea0d7ad6f64987",
"runnerTypes": [
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "arm",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "x86",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "12.6",
"platform": "mac",
"version": "12.6",
"arch": "arm",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "12.6",
"platform": "mac",
"version": "12.6",
"arch": "x86",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "11.7",
"platform": "mac",
"version": "11.7",
"arch": "arm",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "11.7",
"platform": "mac",
"version": "11.7",
"arch": "x86",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "arm",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "13.2",
"platform": "mac",
"version": "13.2",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "11.7",
"platform": "mac",
"version": "11.7",
"arch": "arm",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"macOSVersion": "11.7",
"platform": "mac",
"version": "11.7",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"platform": "windows",
"version": "2022",
"arch": "x86",
"repo": "finch",
"desiredInstances": 1,
"availabilityZones": ["us-east-2a", "us-east-2b", "us-east-2c"]
},
{
"platform": "windows",
"version": "2022",
"arch": "x86",
"repo": "finch-core",
"desiredInstances": 1,
Expand Down
11 changes: 9 additions & 2 deletions config/runner-config.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
import config from './runner-config.json';

export interface RunnerProps {
licenseArn: string;
macLicenseArn: string;
windowsLicenseArn: string;
runnerTypes: Array<RunnerType>;
}

export interface RunnerType {
macOSVersion: string;
platform: PlatformType;
version: string; // e.g. 13.2 if platform == macOS, 2022 if platform == windows
arch: string;
repo: string;
desiredInstances: number;
availabilityZones: Array<string>;
}

export enum PlatformType {
WINDOWS = 'windows',
MAC = 'mac'
}

/**
* Class for runner configurations. Outlines self hosted license arn and an
* array of runner types to create using an auto scaling group.
Expand Down
Loading

0 comments on commit 606e2ee

Please sign in to comment.