# Build multi-architecture container images with GitHub Arm-hosted runners

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/)
- [Build options for multi-architecture container images](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/intro/)
- [Arm-hosted runners for public repositories](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/public-repos/)
- [Create a new Arm-hosted runner for private repositories](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/runner/)
- [Run GitHub Actions jobs on the Arm-hosted runner](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/actions/)
- [Next Steps](https://learn.arm.com/learning-paths/cross-platform/github-arm-runners/_next-steps/)

## About this Learning Path

|  |  |
| --- | --- |
| Skill level: | Introductory |
| Reading time: | 30 min |
| Last updated: | 02 Jul 2026 |

|  |  |
| --- | --- |
| Author: | Jason Andrews , Arm<br>[GitHub](https://github.com/jasonrandrews)<br>[LinkedIn](https://linkedin.com/in/jason-andrews-7b05a8) |
| Arm IP: | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags: | [CI-CD](https://learn.arm.com/tag/ci-cd) [Linux](https://learn.arm.com/tag/linux) [GitHub](https://learn.arm.com/tag/github) [Docker](https://learn.arm.com/tag/docker) [Runbook](https://learn.arm.com/tag/runbook) |

### Who is this for?
This is an introductory topic for software developers who want to learn how to use Arm-hosted runners for GitHub Actions jobs.

### What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Build Arm images and multi-architecture images with Arm-hosted runners.
- Use GitHub Actions to automate image builds.

### Prerequisites
Before starting, you'll need the following prerequisites:
- A GitHub account (a Team or Enterprise Cloud plan is required for private repositories).
- A Docker Hub account.

### Summary
You’ll build and publish multi-architecture container images with GitHub Actions using Arm-hosted runners. You’ll compare common build options, including emulation and native builds assembled with a manifest, then run workflows on Arm-managed arm64 runners for public or private repositories. You’ll create a repository, configure secrets for Docker Hub, and define a workflow that builds images for arm64 alongside amd64, then pushes a multi-architecture image. You’ll also review available runner types for private repositories. After triggering a workflow and verifying that Docker Hub lists a manifest with arm64 and amd64 platforms, you’ll confirm that the build and publication steps completed as intended.

### Frequently asked questions

**How do I know the job ran on an Arm-hosted runner?**

Check the Actions run details for the runner name or labels that indicate an Arm architecture and confirm the workflow selects the Arm-hosted runner. If the run shows a different runner, review the `runs-on` setting in the workflow.

**I’m using a private repository and can’t select an Arm-hosted runner—what should I check?**

Confirm the account uses a Team or Enterprise Cloud plan because private repositories require it for Arm-hosted runners. If it still doesn’t appear, review the repository or organization runner settings.

**Which build approach does this path use for multiple architectures?**

The path explains emulation and manifest-based builds, then uses Arm-hosted runners to perform native arm64 builds and assemble a multi-architecture image. The workflow relies on native Arm execution rather than instruction emulation for the arm64 build.

**Where do I store credentials so the workflow can push images to Docker Hub?**

Add the required registry credentials as repository secrets and reference them in the workflow. Without these secrets, the push step fails to authenticate.

**What result should I expect after the workflow completes?**

Expect a successful Actions run and a new image tag on Docker Hub with a multi-architecture manifest listing arm64 and amd64. If the platforms are missing, review the build logs to see which architecture jobs ran and which images were pushed.
