forked from NextChapterSoftware/ec2-action-builder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yaml
66 lines (65 loc) · 2.01 KB
/
action.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
name: 'Deploy self-hosted runners to EC2 (Spot/On-Demand)'
description: 'Automatically deploy self-hosted runners to AWS EC2 using Spot/On-Demand instances and optimize for best performance/cost.'
branding:
icon: 'server'
color: 'orange'
inputs:
aws_access_key_id:
description: 'AWS access key ID'
required: true
aws_secret_access_key:
description: 'AWS secret access key'
required: true
aws_region:
description: 'AWS Region'
required: true
aws_iam_role_arn:
description: 'ARN of IAM role to assume'
required: false
default: ''
github_token:
description: 'GitHub token'
required: true
github_action_runner_version:
description: 'GitHub action runner version'
required: false
# Custom label support still needs more work. For now we default to job ID
#github_action_runner_label:
# description: 'GitHub action runner label'
# required: false
ec2_instance_type:
description: 'Ec2 instance type'
required: true
ec2_ami_id:
description: 'Ec2 ami ID'
required: true
ec2_instance_iam_role:
description: 'IAM role for to associate with ec2 instance'
required: false
default: ''
ec2_instance_tags:
description: 'List of extra aws resource tags for ec2 instance'
required: false
default: '{}'
ec2_instance_ttl:
description: 'Maximum duration an EC2 instance is allowed to live in minute'
required: false
default: '60'
ec2_security_group_id:
description: 'Security group id'
required: true
ec2_subnet_id:
description: 'Subnet id'
required: true
ec2_spot_instance_strategy:
description: >
Spot instance scheduling modes:
None -> (default) no spot instances, use on-demand
SpotOnly -> Strictly spot instances only
BestEffort -> Use spot instances whenever they are cheaper than on-demand
MaxPerformance -> Use the largest spot instance in same class for <= the on-demand price
required: false
default: "none"
runs:
using: 'node20'
main: 'dist/index.js'