omsf/start-aws-gha-runner
A simple GitHub Action for creating a self-hosted runner on AWS.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 10, 2026
- License
- MIT
Pinned Snippet
uses: omsf/start-aws-gha-runner@a68aee57f031da4b6a0063d901e02f0b17d95f94 # v1.3.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| aws_home_dir | The AWS AMI home directory to use for your runner. Will not start if not specified. For example: `/home/ec2-user` | yes | — |
| aws_iam_role | The optional AWS IAM role to assume for provisioning your runner. | no | — |
| aws_image_id | The machine AMI to use for your runner. This AMI can be a default but should have docker installed in the AMI. Will not start if not specified. If set to `latest`, `aws_image_name` is required | yes | — |
| aws_image_name | The AMI name. Only required if `aws_image_id` is set to latest. Be as specific as possible. For example: Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 24.04) | — | — |
| aws_instance_type | The type of instance to use for your runner. For example: t2.micro, t4g.nano, etc. Will not start if not specified. | yes | — |
| aws_market_type | The EC2 market type: `on-demand` (default) or `spot`. | no | on-demand |
| aws_spot_max_price | The maximum hourly price (USD, as a string, e.g. `0.50`) to pay for a spot instance. Only used when `aws_market_type` is `spot`. Defaults to the on-demand price if unset. | no | — |
| aws_region_name | The AWS region name to use for your runner. Defaults to AWS_REGION. | no | — |
| aws_root_device_size | The root device size in GB to use for your runner. Optional, defaults to the AMI default root disk size. | no | — |
| aws_security_group_id | The AWS security group ID to use for your runner. Will use the account default security group if not specified. | no | — |
| aws_subnet_id | The AWS subnet ID to use for your runner. Will use the account default subnet if not specified. | no | — |
| aws_tags | The AWS tags to use for your runner, formatted as a JSON list. See `README` for more details. | no | — |
| extra_gh_labels | Any extra GitHub labels to tag your runners with. Passed as a comma-separated list with no spaces. | no | — |
| instance_count | The number of instances to create, defaults to 1 | yes | 1 |
| repo | The repo to run against. Will use the current repo if not specified. | no | — |
| gh_timeout | The timeout in seconds to wait for the runner to come online as seen by the GitHub API. Defaults to 1200 seconds. | yes | 1200 |
Outputs
| name | description |
|---|---|
| mapping | A JSON object mapping instance IDs to unique GitHub runner labels. This is used in conjunction with the `instance_mapping` input when stopping. |
| instances | A JSON list of the GitHub runner labels to be used in the 'runs-on' field |