setup-ci-host

Prepare a physical CI host filesystem layout for miles GitHub Actions runners.

1.9k|352|Updated Oct 9, 2025
One-click install
npx skills add https://github.com/radixark/miles --skill setup-ci-host
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: setup-ci-host
Source: https://github.com/radixark/miles/tree/main/.claude/skills/setup-ci-host
Command: npx skills add https://github.com/radixark/miles --skill setup-ci-host

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires rsync.

What problem does it solve?

Prepare a new physical CI host so /data/miles_ci is canonical on the host's biggest disk, or as a symlink to it, before installing miles GitHub Actions runners. It is idempotent and safe to re-run; it only prepares the host filesystem layout (big-disk detection, mkdir, symlink) and does not add, remove, or talk to GitHub runners.

Core Features & Use Cases

  • Detects the largest non-system mount and creates the canonical paths under that disk.
  • Creates /data/miles_ci as a real directory when the biggest mount is /data, or creates real <big_disk>/miles_ci and symlinks /data/miles_ci to it otherwise.
  • Ensures subdirectories /data/miles_ci/models, /data/miles_ci/datasets, /data/miles_ci/hf_cache exist and are ready for Miles CI usage.
  • Prints a summary including chosen mount, target, and available disk space to verify configuration.

Quick Start

Run the setup-host.sh script to canonicalize the CI data path.

Frequently Asked Questions about setup-ci-host

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up the filesystem layout for CI runners on a new host?

To set up the filesystem layout for CI runners, this Skill automatically detects the largest non-system mount and creates the canonical /data/miles_ci directory with required subdirectories, optionally symlinking the path if the biggest disk is not /data.

What is the best way to canonicalize a data path on the biggest disk before installing GitHub Actions runners?

Canonicalizing a data path on the biggest disk before installing GitHub Actions runners is handled by detecting the largest mount, creating real target directories, and symlinking /data/miles_ci to that location with idempotent behavior.

Does the CI host setup script require rsync to configure the /data directory?

Yes, configuring the CI host filesystem requires rsync as a dependency, but the script only prepares the directory structure and symlinks without installing or communicating with GitHub runners.

Can I safely re-run the host provisioning script if the miles_ci symlink already exists?

You can safely re-run the host provisioning script because the filesystem setup is idempotent, ensuring existing /data/miles_ci paths and symlinks are handled without duplication or errors.

Why does the setup create a symlink for /data/miles_ci instead of a regular directory?

The setup creates a symlink for /data/miles_ci when the biggest mount is not /data, redirecting CI data to the largest available disk while maintaining the canonical path expected by GitHub Actions runners.

How do I verify which disk mount was selected for the CI data directory?

To verify which disk mount was selected for the CI data directory, the setup script prints a summary showing the chosen mount, target path, and available disk space upon completion.