-
Notifications
You must be signed in to change notification settings - Fork 7
/
action.yaml
91 lines (90 loc) · 2.84 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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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_session_token:
description: 'AWS session token'
required: false
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
github_action_runner_extra_cli_args:
description: 'GitHub action runner extra cli args'
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
github_job_start_ttl_seconds:
description: 'Maximum duration a runner instance is allowed to be idle before a job is started in seconds'
required: false
default: '0'
github_api_retry_delay:
description: 'Retry delay between calls to github APIs'
required: false
default: '10'
ec2_instance_type:
description: 'Ec2 instance type'
required: true
ec2_ami_id:
description: 'Ec2 ami ID'
required: true
ec2_iam_instance_profile:
description: 'Ec2 IAM Instance Profile'
required: false
ec2_root_disk_size_gb:
description: 'Ec2 root disk size (defaults to AMI setting)'
required: false
default: "0"
ec2_root_disk_ebs_class:
description: 'Ec2 root disk storage class (defaults to gp2)'
required: false
default: "gp2"
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'