Newer
Older
# Arm Hosted GitHub Action Runners
## Introduction
Arm Hosted GitHub Action(GHA) Runners is offered for pre-approved community projects to run GitHub Actions on ARM architecture. These runners are hosted in a cloud infrastrcture managed by Arm. The infrastructure is built using [philips-labs/terraform-aws-github-runner](https://github.com/philips-labs/terraform-aws-github-runner) project and runs on [Graviton instance](https://aws.amazon.com/ec2/graviton/) in Amazon Web Service(AWS). By utilizing these runners, community projects can benefit from enhanced performance and resource efficiency tailored to ARM workloads, ensuring that your development and testing processes are both efficient and scalable.
## Getting Started
### Pre-requisites
⚠ Arm Hosted GitHub Action Runners can only be used in approved GitHub repositories by us. Please [request approval](#requesting-approval-for-your-repository) for your GitHub repository if you need one.
### Steps to Get Started
#### Install the GitHub App:
Arm Hosted GHA Runners will be integrated to your GitHub repsository using the GitHub App - [Arm Host GitHub Action Runners](https://github.com/apps/arm-hosted-gha-runners). GitHub Apps are tools that extend GitHub's functionality. The underlying infratrcture sends and receives GitHub API requests through this GitHub App. There are certain permission requirement for the intgration to work as given below.
##### Permission requirement for GitHub APP
* _Read access to actions, checks, codespaces metadata, and metadata_ - This is for listening to GitHub Action requests in your repository,
* _Read and write access to administration_ - This is for connecting GitHub Action Runner to your repository.
##### Steps to install the GitHub APP
* Click on [Arm Host GitHub Action Runners](https://github.com/apps/arm-hosted-gha-runners) and select install.
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
* You will be provided with a list of GitHub organisation and repositories that you manage. Select the repository that is approved by us and click install.
#### Start using it
We provide runners in various [configuration](#runner-configurations). Use them for your workload as normal using GitHub Action's `runs-on` keyword. Here's a snippet you could use:
```
jobs:
build:
name: Build on c6g.xlarge
runs-on: ah-ubuntu_22_04-c6g_x-50
steps:
- name: Checkout code
uses: actions/checkout@v3
```
## Runner Configurations
| Runner Label | Instance Type | Volume Size (GB) | Max Runners | Operating System / AMI filter |
| ----- | ------------- | ---------------- | ----------- | --------- |
| ah-ubuntu_22_04-c6g_x-50 | c6g.xlarge | 50 | 20 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c6g_2x-50 | c6g.2xlarge | 50 | 20 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c6g_4x-50 | c6g.4xlarge | 50 | 10 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c6g_8x-100 | c6g.8xlarge | 100 | 5 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c7g_x-50 | c7g.xlarge | 50 | 20 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c7g_2x-50 | c7g.2xlarge | 50 | 20 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c7g_4x-50 | c7g.4xlarge | 50 | 10 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c7g_8x-100 | c7g.8xlarge | 100 | 5 | ubuntu-jammy-22.04-arm64-server-* |
| ah-ubuntu_22_04-c7g_m-100 | c7g.metal | 50 | 1 | ubuntu-jammy-22.04-arm64-server-* |
* _Runner Label_ - This is the label that can be used in GitHub Action's `runs-on` keyword
* _Instance Type_ - [Instance types](https://aws.amazon.com/ec2/instance-types/) in Amazon Web Service.
* _Volume Size_ - Size of Volume attached to the runners.
* _Max Runners_ - Maximum concurrent runners. Beyond which, your request will be queued.
* _Operating System / AMI filter_ - Underlying operating system of the runners.
## Support
### Requesting approval for your repository
Please create an issue in this GitLab project using `New Repository Approval` template.
### Requesting new instance types or runner Configurations
Please create an issue in this GitLab project using `Runner Configuration Change` template.
### Any other questions/Support
Please create an issue in this GitLab project.