@@ -39,12 +39,17 @@ reserved aliases and fail until artifact transfer is wired end to end. |
| 39 | ```sh | 39 | ```sh |
| 40 | shithubd admin runner register \ | 40 | shithubd admin runner register \ |
| 41 | --name smoke-runner-1 \ | 41 | --name smoke-runner-1 \ |
| 42 | - --labels self-hosted,linux,ubuntu-latest \ | 42 | + --labels self-hosted,linux,ubuntu-latest,x64 \ |
| 43 | - --capacity 1 | 43 | + --capacity 1 \ |
| | 44 | + --output json |
| 44 | ``` | 45 | ``` |
| 45 | | 46 | |
| 46 | -3. Start `shithubd-runner` with the printed token. For production hosts, use | 47 | +3. Start `shithubd-runner` with the returned token. For production hosts, use |
| 47 | - the Ansible/systemd path in [runner-deploy.md](./runner-deploy.md). | 48 | + one token per host and store it in ansible-vault, host vars, or the deployment |
| | 49 | + secret store. The role writes `/etc/shithubd-runner/config.toml` with |
| | 50 | + restrictive permissions. Use `--expires-in` only when the automation rotates |
| | 51 | + the runner token before that deadline; the current runner uses the |
| | 52 | + registration token for every heartbeat. |
| 48 | 4. Push a `run:`-only workflow: | 53 | 4. Push a `run:`-only workflow: |
| 49 | | 54 | |
| 50 | ```yaml | 55 | ```yaml |
@@ -155,6 +160,13 @@ On the app host, inspect runner registration and heartbeat state: |
| 155 | shithubd admin actions runner list | 160 | shithubd admin actions runner list |
| 156 | ``` | 161 | ``` |
| 157 | | 162 | |
| | 163 | +Inspect queued jobs by requested `runs-on` label: |
| | 164 | + |
| | 165 | +```sh |
| | 166 | +shithubd admin runner queue |
| | 167 | +shithubd admin runner queue --output json |
| | 168 | +``` |
| | 169 | + |
| 158 | Important metrics: | 170 | Important metrics: |
| 159 | | 171 | |
| 160 | - `shithub_actions_queue_depth{resource="runs|jobs"}` | 172 | - `shithub_actions_queue_depth{resource="runs|jobs"}` |
@@ -198,7 +210,7 @@ Useful knobs: |
| 198 | | 210 | |
| 199 | - `SHITHUB_ACTIONS_VUS=50` controls concurrent virtual users. | 211 | - `SHITHUB_ACTIONS_VUS=50` controls concurrent virtual users. |
| 200 | - `SHITHUB_ACTIONS_DURATION=10m` controls the steady-state window. | 212 | - `SHITHUB_ACTIONS_DURATION=10m` controls the steady-state window. |
| 201 | -- `SHITHUB_RUNNER_LABELS=self-hosted,linux,ubuntu-latest` sets heartbeat | 213 | +- `SHITHUB_RUNNER_LABELS=self-hosted,linux,ubuntu-latest,x64` sets heartbeat |
| 202 | labels. | 214 | labels. |
| 203 | - `SHITHUB_RUNNER_CAPACITY=17` keeps three runners near the 50-concurrent | 215 | - `SHITHUB_RUNNER_CAPACITY=17` keeps three runners near the 50-concurrent |
| 204 | target. | 216 | target. |
@@ -240,8 +252,11 @@ active container, and reports terminal `cancelled`. |
| 240 | - **Run never appears:** confirm the workflow file is under | 252 | - **Run never appears:** confirm the workflow file is under |
| 241 | `.shithub/workflows/`, parse it with `shithubd admin actions parse <file>`, | 253 | `.shithub/workflows/`, parse it with `shithubd admin actions parse <file>`, |
| 242 | and verify the trigger event matches `on:`. | 254 | and verify the trigger event matches `on:`. |
| 243 | -- **Run stays queued:** confirm a runner is registered with matching labels and | 255 | +- **Run stays queued:** open the run page to see the requested runner labels, |
| 244 | - capacity, then inspect runner journal output and heartbeat metrics. | 256 | + then run `shithubd admin runner queue` and confirm a live runner is registered |
| | 257 | + with matching labels and capacity. Unsupported hosted labels such as |
| | 258 | + `windows-latest` and `macos-latest` intentionally remain queued until an |
| | 259 | + operator registers matching runners. |
| 245 | - **Step logs buffer:** verify the Caddy route above and confirm the SSE route | 260 | - **Step logs buffer:** verify the Caddy route above and confirm the SSE route |
| 246 | is still mounted outside compression and short timeouts. | 261 | is still mounted outside compression and short timeouts. |
| 247 | - **`actions/checkout@v4` fails:** confirm the job is still running, the repo | 262 | - **`actions/checkout@v4` fails:** confirm the job is still running, the repo |