Files
wakey/scripts/WSL_RUNNER.md
T
2026-04-07 00:21:06 +07:00

3.3 KiB

Fedora / WSL Gitea Runner

This repo now expects Linux/router release builds to run on a Fedora 43 runner inside WSL, not on the Windows host runner.

The goal is simple:

  • build wakey and wakey-agent in a Linux-native environment
  • stop fighting Windows-host ARM/musl/TLS toolchain issues
  • keep PowerShell on Windows as the operator front door

Runner layout

Recommended WSL location:

/mnt/c/Users/Admin/Documents/realshit/wakey/ar_data/wsl_runner

This matches the default used by act_runner_wsl.ps1 and act_runner_fedora.sh, so WSL runner config is isolated at ar_data/wsl_runner/config.yaml in this repo.

Recommended labels:

self-hosted,linux,fedora,wsl,release:host

The Windows runner can stay registered during migration as fallback.

Fedora setup

Install the basics in Fedora 43:

sudo dnf install -y git curl tar gzip findutils python3
sudo dnf install -y powershell

Install Rust and the router target:

rustup target add armv7-unknown-linux-musleabihf

Install the native cross toolchain pieces you need for Linux/ARM router builds. The exact package names can vary over time, so confirm the current Fedora names for:

  • ARM Linux GCC
  • musl development/toolchain support
  • OpenSSL/ring/TLS build prerequisites if needed by your dependency graph

Runner lifecycle

From Windows PowerShell, using the WSL wrapper:

./scripts/act_runner_wsl.ps1 -Action update
./scripts/act_runner_wsl.ps1 -Action register -ServerUrl https://git.ldlda.com/ -Token <runner-token>
./scripts/act_runner_wsl.ps1 -Action start -Attach
./scripts/act_runner_wsl.ps1 -Action start -Once
./scripts/act_runner_wsl.ps1 -Action status
./scripts/act_runner_wsl.ps1 -Action stop

Path control (binary and config are independent):

./scripts/act_runner_wsl.ps1 -Action status `
 -RunnerBin /home/lda/gitea-runner/act_runner `
 -ConfigPath /mnt/c/Users/Admin/Documents/realshit/wakey/ar_data/wsl_runner/config.yaml

If your distro name is not FedoraLinux-43, set it explicitly:

./scripts/act_runner_wsl.ps1 -Distro FedoraLinux-43 -Action status

Or set:

$env:WAKEY_WSL_DISTRO = "FedoraLinux-43"

Inside Fedora directly, you can also use:

./scripts/act_runner_fedora.sh update
./scripts/act_runner_fedora.sh register --server-url https://git.ldlda.com/ --token <runner-token>
./scripts/act_runner_fedora.sh start --attach
./scripts/act_runner_fedora.sh start --once
./scripts/act_runner_fedora.sh status
./scripts/act_runner_fedora.sh stop

Release flow

The release workflow is expected to run on the Fedora/WSL runner labels:

self-hosted + linux + fedora + wsl + release

It builds:

  • wakey
  • wakey-agent

and packages both into the rootfs tarball.

From Windows, the intended operator flow remains:

./scripts/publish.ps1 -Tag

That script should trigger the WSL runner in --once mode by default.

Rollback

If the Fedora runner path is broken:

  1. stop using the WSL runner labels in the workflow
  2. temporarily point the workflow back to the Windows runner labels
  3. use the existing Windows runner as fallback while fixing the Fedora path

Do not delete the Windows runner until the Fedora path has already produced at least one successful full release and one successful router install.