Skip to content

docs: add runner environment requirements, GHES, and ARC sections to self-hosted guide#31923

Merged
pelikhan merged 6 commits into
mainfrom
salmanmkc/selfhosted-runner-docs
May 13, 2026
Merged

docs: add runner environment requirements, GHES, and ARC sections to self-hosted guide#31923
pelikhan merged 6 commits into
mainfrom
salmanmkc/selfhosted-runner-docs

Conversation

@salmanmkc
Copy link
Copy Markdown
Collaborator

Expands the self-hosted runners guide with three new sections:

  • Runner environment requirements — guiding principles for filesystem, Docker, cleanup, and network
  • GHES — artifact compatibility feature flag and API endpoint configuration
  • ARC — Docker-in-Docker sidecar support and pod security requirements

Ref #28888, #29551

…self-hosted guide

Add guiding principles for self-hosted runner compatibility:
- Use RUNNER_TEMP for transient state (not /tmp on shared runners)
- No root/sudo assumption for tool installs
- No global installs to read-only system paths
- No hardcoded HOME paths
- Post-job cleanup expectations

Add GHES section documenting:
- ghes-artifact-compat feature flag for v3.x artifact actions
- API endpoint configuration reference

Add ARC/Kubernetes section covering:
- Docker-in-Docker sidecar support
- Socket retry for dind startup race
- Pod security requirements

Ref #28888, #29551
Copilot AI review requested due to automatic review settings May 13, 2026 11:05
@github-actions
Copy link
Copy Markdown
Contributor

✅ smoke-ci: safeoutputs CLI comment + comment-memory run (25795174651)

Generated by Smoke CI for issue #31923 ·

@github-actions
Copy link
Copy Markdown
Contributor

Comment Memory

CI lights the path
Green checks bloom at dawn
Quiet bots still sing

Note

This comment is managed by comment memory.

It stores persistent context for this thread in the code block at the top of this comment.
Edit only the text inside the backtick fences; workflow metadata and the footer are regenerated automatically.

Learn more about comment memory

Generated by Smoke CI for issue #31923 ·

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Expands the self-hosted runners guide to cover operational requirements and additional guidance for ARC/Kubernetes and GHES environments.

Changes:

  • Updated the guide description and added an Enterprise Configuration link in “Related documentation”.
  • Added a “Runner environment requirements” section covering Docker, filesystem, cleanup, and network expectations.
  • Added new GHES and ARC sections with configuration notes and recommendations.
Show a summary per file
File Description
docs/src/content/docs/guides/self-hosted-runners.md Adds self-hosted runner requirements plus GHES and ARC-specific guidance to help users run agentic workflows outside GitHub-hosted runners.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 1/1 changed files
  • Comments generated: 3


### Filesystem

- **Use `RUNNER_TEMP` for transient state.** All job-scoped temporary files (sandbox state, tool downloads, intermediate outputs) should go to `$RUNNER_TEMP`, which is cleaned between jobs. Never write to `/tmp` on shared runners — it persists across jobs.
Comment on lines +199 to +217
GHES does not support the `@actions/artifact` v2.0.0+ backend used by `upload-artifact@v4+` and `download-artifact@v4+`. Compiled workflows use the latest artifact action versions by default, which fail on GHES with `GHESNotSupportedError`.

Enable the `ghes-artifact-compat` feature flag to use compatible v3.x artifact actions:

```aw
---
on: workflow_dispatch
runs-on: [self-hosted, linux]
features:
ghes-artifact-compat: true
engine: copilot
---
```

Or set the environment variable globally:

```bash
GH_AW_FEATURES=ghes-artifact-compat gh aw compile
```

A working Docker daemon is required. The MCP gateway and sandbox run as containers.

- **Unix socket**: Docker must be accessible via a Unix socket (typically `/var/run/docker.sock`). The gateway resolves the socket path from `DOCKER_HOST` if set.
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot review all comments, build docs

Copilot AI and others added 3 commits May 13, 2026 13:54
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan
Copy link
Copy Markdown
Collaborator

some of these recommendations need to become instructions or even compiler magic to rewrite.

Copilot AI and others added 2 commits May 13, 2026 13:59
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI commented May 13, 2026

@copilot review all comments, build docs

Addressed all review feedback and rebuilt docs successfully in commit c234dbd.

Copilot AI requested a review from pelikhan May 13, 2026 14:02

### Filesystem

- **Use `RUNNER_TEMP` for transient state.** Put sandbox state, tool downloads, and intermediate outputs in `$RUNNER_TEMP`, which is cleaned between jobs. On shared runners, avoid writing arbitrary workflow data to `/tmp` because it can persist across jobs. The `/tmp/gh-aw` prefix is reserved for gh-aw/AWF ARC DinD path rewriting. `actions/setup` resets `/tmp/gh-aw` at job start, and your normal runner `/tmp` cleanup policy should handle stale data from interrupted jobs.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@salmanmkc need review

@pelikhan pelikhan merged commit 2f4b6cf into main May 13, 2026
14 checks passed
@pelikhan pelikhan deleted the salmanmkc/selfhosted-runner-docs branch May 13, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants