Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 2.38 KB

infrastructure.md

File metadata and controls

57 lines (44 loc) · 2.38 KB
title Infrastructure
layout default
nav_order 7

Infrastructure

The python-wheels project makes use of some supplemental infrastructure available both on GitHub, and externally. The following sections outline these services and how to configure/maintain them.

RISE RISC-V Runners

For RISE-hosted builds of Python wheels and upstream submissions, the python-wheels repository uses the RISC-V Runners project. It is already enabled for the repository; to reconfigure, see the installation guide.

GitHub Releases

Built wheels are stored as assets on GitHub Releases. Each successful publish from main creates a new release with a normalized package-and-version title and a unique UTC timestamp in its tag. Releases are created as drafts, populated with all wheel and GPL-source assets, and then published.

Immutable releases must remain enabled under the repository's release settings. Once published, a release's tag and assets cannot be changed or deleted. The _publish-wheel.yml reusable workflow checks this setting before publishing and verifies that the resulting release is immutable.

The workflow uses the repository-provided GITHUB_TOKEN; callers grant the publish job contents: write and pull-requests: write. No external package registry credentials are required.

GitHub Pages Configuration

The .github/workflows/website.yml workflow handles building and deploying documentation. For this to work correctly, the following settings need to be configured under Settings -> Pages -> Build and deployment in the repository:

  1. Source should be set to Deploy from a branch
  2. Branch should be set to gh-pages /(root)

When this is configured, any push to main touching the docs folder triggers a docs build and deploy. The deploy replaces the whole content of the gh-pages branch, including the simple/project package index (generated from docs/packages/*.yaml), so nothing should be committed there by hand. The custom domain is written to CNAME by the cname input of peaceiris/actions-gh-pages.

Note that the gh-pages branch should be automatically created by the workflows, but if not it must be created manually with an empty .nojekyll file in the project root to avoid long rebuild times.