Summary
This guide demonstrates how to set up a self-hosted GitHub Actions runner within an Ubuntu WSL (Windows Subsystem for Linux) environment on Windows 11.
Prerequisites
- Windows 11
- WSL 2 installed (
wsl --install)
- Docker Desktop (optional, but recommended for container workflows)
The following log session details the complete installation process, from setting up the WSL environment to registering the runner.
View Full Installation Log Session
| C:\Users\WJLEE>wsl -l
Windows Subsystem for Linux Distributions:
Ubuntu-24.04 (Default)
docker-desktop
C:\Users\WJLEE>wsl -d Ubuntu-24.04
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE$ mkdir actions-runner && cd actions-runner
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ curl -o actions-runner-linux-x64-2.322.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.322.0/actions-runner-linux-x64-2.322.0.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 113M 100 113M 0 0 11.5M 0 0:00:09 0:00:09 --:--:-- 12.5M
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ echo "b13b784808359f31bc79b08a191f5f83757852957dd8fe3dbfcc38202ccf5768 actions-runner-linux-x64-2.322.0.tar.gz" | shasum -a 256 -c
actions-runner-linux-x64-2.322.0.tar.gz: OK
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ tar xzf ./actions-runner-linux-x64-2.322.0.tar.gz
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ ./config.sh --url https://github.com/wenchiehlee/Selenium-Actions.Auction --token ACV3XP4YIAC7ZDQSFUKTJZ3HYVWI4
--------------------------------------------------------------------------------
| ____ _ _ _ _ _ _ _ _ |
| / ___(_) |_| | | |_ _| |__ / \ ___| |_(_) ___ _ __ ___ |
| | | _| | __| |_| | | | | '_ \ / _ \ / __| __| |/ _ \| '_ \/ __| |
| | |_| | | |_| _ | |_| | |_) | / ___ \ (__| |_| | (_) | | | \__ \ |
| \____|_|\__|_| |_|\__,_|_.__/ /_/ \_\___|\__|_|\___/|_| |_|___/ |
| |
| Self-hosted runner registration |
| |
--------------------------------------------------------------------------------
# Authentication
√ Connected to GitHub
# Runner Registration
Enter the name of the runner group to add this runner to: [press Enter for Default]
Enter the name of runner: [press Enter for TAICLTb37TmOcq7]
This runner will have the following labels: 'self-hosted', 'Linux', 'X64'
Enter any additional labels (ex. label-1,label-2): [press Enter to skip] ubuntu-latest
√ Runner successfully added
√ Runner connection is good
# Runner settings
Enter name of work folder: [press Enter for _work]
√ Settings Saved.
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ ubuntu-latest
ubuntu-latest: command not found
wjlee@TAICLTb37TmOcq7:/mnt/c/Users/WJLEE/actions-runner$ ./run.sh
√ Connected to GitHub
Current runner version: '2.322.0'
2025-03-03 07:52:30Z: Listening for Jobs
2025-03-03 07:52:36Z: Running job: sync-backup-workflow
|
Outcome
The runner is successfully registered and listening for jobs.