Skip to content

CI: provision the self-hosted weather-ci runner #9

Description

@Protonmatter

Current state

The repository-side bootstrap work is complete.

Required host-side actions

  1. Set repository variable PYPI_MIRROR_URL to the approved internal mirror before enabling the weather-ci label.

  2. Prepare a dedicated non-root Linux x64 account with Python 3.12 and approved package egress.

  3. In Settings → Actions → Runners → New self-hosted runner, obtain the short-lived registration token, the runner version offered to this repository, and the official Linux x64 SHA-256.

  4. From a current checkout of main, run:

    RUNNER_URL=https://github.com/Protonmatter/global-weather-platform \
    RUNNER_TOKEN=<registration-token> \
    RUNNER_LABELS=weather-ci \
    RUNNER_VERSION=<version-from-repository-setup-page> \
    RUNNER_SHA256=<official-linux-x64-sha256> \
    RUNNER_AS_SERVICE=true \
    scripts/register_runner.sh
  5. Use supervised administrator elevation for service installation. Do not grant persistent passwordless sudo to scripts under the user-writable runner directory.

  6. Keep the registration token on the host; do not place it in GitHub, chat, tickets, or shell history.

Full runbook: docs/CI_RUNNERS.md.

Acceptance

  • The runner appears online with self-hosted, Linux, X64, and weather-ci.
  • ci-bootstrap completes successfully.
  • pr-fast completes successfully using PYPI_MIRROR_URL.
  • spec-validation completes successfully.
  • Required branch protection identifies the authoritative checks.
  • This issue can then be closed.

Deferred lanes

weather-build and weather-security require their own labels and the internal registry, attestation, and scan configuration documented in docs/CI_RUNNERS.md. Prefer separate runner groups or hosts where those lanes have different trust boundaries.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions