1+ name : Runner types
2+ on :
3+ workflow_dispatch :
4+
5+ jobs :
6+ # #####################################
7+ # GITHUB (MICROSOFT) HOSTED RUNNERS
8+ # #####################################
9+ # GitHub provides hosted runners which run on Microsoft Azure.
10+ #
11+ # Open source projects get some free usage and pro/team/enterprise GitHub
12+ # subscriptions also come with some number of minutes included (after which
13+ # you pay based on usage.
14+ #
15+ # These are the easiest to get started with (require no additional configuration
16+ # and it makes sense to use the free minutes, but only on workflows which are not in the
17+ # critical path for your production deployments. For usage beyond your quota I suggest
18+ # looking at the below options for higher performance (and more affordable)
19+ # approaches!
20+ # #####################################
21+ github-hosted-ubuntu-vm :
22+ name : Ubuntu 24.04 VM
23+ runs-on : ubuntu-24.04
24+ steps :
25+ - name : Show runner info
26+ run : |
27+ echo "Hello from ${{ runner.os }}-${{ runner.arch }}"
28+ echo "Runner name (type): ${{ runner.name }}"
29+
30+ github-hosted-windows-vm :
31+ name : Windows 2022 VM
32+ runs-on : windows-2022
33+ steps :
34+ - name : Show runner info
35+ shell : pwsh
36+ run : |
37+ echo "Hello from ${{ runner.os }}-${{ runner.arch }}"
38+ echo "Runner name (type): ${{ runner.name }}"
39+
40+ github-hosted-macos-vm :
41+ name : macOS 14 VM
42+ runs-on : macos-14
43+ steps :
44+ - name : Show runner info
45+ run : |
46+ echo "Hello from ${{ runner.os }}-${{ runner.arch }}"
47+ echo "Runner name (type): ${{ runner.name }}"
48+
49+ alpine-container-on-github-hosted-ubuntu-vm :
50+ name : Alpine container on Ubuntu VM
51+ runs-on : ubuntu-24.04
52+ container :
53+ image : alpine:3.20
54+ steps :
55+ - name : Show runner info
56+ run : |
57+ echo "Hello from ${{ runner.os }}-${{ runner.arch }}"
58+ echo "Runner name (type): ${{ runner.name }}"
59+ echo "Container image: $(grep PRETTY_NAME /etc/os-release)"
60+
61+ # #####################################
62+ # 3RD PARTY HOSTED RUNNERS
63+ # #####################################
64+ # There are companies which host GitHub Action runners that provide increased performance for less $$$
65+ #
66+ # One such company happens to be the sponsor of the course! 🙏
67+ #
68+ # ✨ Namespace Labs (https://namespace.so/) ✨
69+ #
70+ # You can likely cut your build times (and your CI bill) signiticantly by using their runners
71+ # and it only takes changing a single line of yaml:
72+ #
73+ # - runs-on: ubuntu-24.04
74+ # + runs-on: namespace-profile-default # The default as of July 2025 is Ubuntu 22.04
75+ #
76+ # (They also offer MacOS and Windows runners!)
77+ # #####################################
78+ namespace-ubuntu-vm :
79+ name : Namespace Ubuntu VM
80+ runs-on : namespace-profile-default
81+ steps :
82+ - name : Show runner info
83+ run : |
84+ echo "Hello from ${{ runner.os }}-${{ runner.arch }}"
85+ echo "Runner name (type): ${{ runner.name }}"
86+
87+ # #####################################
88+ # SELF HOSTED RUNNERS
89+ # #####################################
90+ # There are also methods to self-host github action runners.
91+ #
92+ # These can provide inexpensive compute, but with increased operational overhead.
93+ # They also allow you to execute within your own VPC which may or may not be important to you depending on your business
94+ #
95+ # A few of the most popular options for doing this:
96+ # - https://runs-on.com/ (run jobs as EC2 instances in AWS)
97+ # - https://github.com/actions/actions-runner-controller (run jobs in any Kubernetes cluster)
98+ # - https://docs.railway.com/tutorials/github-actions-runners (run jobs on Railway)
99+ #
100+ # Configuration/usage of these is outside the scope of this course, and is left as an exercise for the reader
101+ # #####################################
0 commit comments