Skip to content

Commit 8af5536

Browse files
committed
docs/infrastructure: add guide
Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
1 parent 1887a91 commit 8af5536

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

docs/infrastructure.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Infrastructure
2+
3+
The [python-wheels](https://github.com/riseproject-dev/python-wheels) project
4+
makes use of some supplemental infrastructure available both on GitHub, and
5+
externally. The following sections outline these services and how to
6+
configure/maintain them.
7+
8+
## RISE RISC-V Runners
9+
10+
For RISE-hosted builds of Python wheels and upstream submissions, the
11+
`python-wheels` repository uses the [RISC-V
12+
Runners](https://riscv-runners.riseproject.dev/) project. It is already enabled
13+
for the repository; to reconfigure, see the [installation
14+
guide](https://riscv-runners.riseproject.dev/docs/getting-started/install).
15+
16+
## GitLab
17+
18+
The `python-wheels` project is a continuation of
19+
[wheel_builder](https://gitlab.com/riseproject/python/wheel_builder), which is
20+
hosted on GitLab. This project leverages the GitLab CI/CD framework to create
21+
pipelines for building, testing, and deploying wheels, along with automatic
22+
documentation updates and periodic checks for new package versions upstream.
23+
24+
While development and maintenance now primarily occur on GitHub, the existing
25+
GitLab infrastructure (particularly the package registry) must be maintained.
26+
The original wheel_builder
27+
[documentation](https://riseproject.gitlab.io/python/wheel_builder/index.html)
28+
is maintained for reference purposes, and provides a detailed explanation of how
29+
the project was originally structured.
30+
31+
### GitLab for Open Source
32+
33+
We apply for the [GitLab for Open
34+
Source](https://about.gitlab.com/solutions/open-source/join/) program. This
35+
provides us with the GitLab Ultimate tier at no cost. Membership requires annual
36+
renewal.
37+
38+
### CI/CD Pipeline Tokens and Access
39+
40+
The GitLab CI/CD pipelines make use of project tokens, generated at different
41+
project scopes. Two tokens are defined:
42+
43+
1. `PYTHON_CI_GROUP_TOKEN` - Defined at the "Group"
44+
([Python](https://gitlab.com/riseproject/python)) level. Used for triggering
45+
pipelines for merge requests and most automatic updates and checks. The value
46+
of this token is inherited by `wheel_builder` as `PYTHON_CI_GROUP_TOKEN`
47+
under `Settings -> CI/CD Settings -> Variables` (see the [CI/CD variables
48+
panel](https://gitlab.com/riseproject/python/wheel_builder/-/settings/ci_cd#js-cicd-variables-settings)).
49+
2. `rise-github-package-registry` - Defined at the "Repository"
50+
([wheel_builder](https://gitlab.com/riseproject/python/wheel_builder/-/settings/repository#js-deploy-tokens))
51+
level. Used for pushing wheels to the GitLab package registry from GitHub.
52+
53+
These tokens are generated with a 1-year expiry timeline, so they need to be
54+
regenerated by a project administrator/owner.
55+
56+
#### Token Scope Reference
57+
58+
| Token | Level | Role | Scopes | Used For | Expiry |
59+
|-------|-------|------|--------|----------|--------|
60+
| `PYTHON_CI_GROUP_TOKEN` | Group ([Python](https://gitlab.com/riseproject/python)) | Maintainer | `api`, `read_api`, `read_repository`, `write_repository` | MR pipeline triggers, auto updates/checks | 1 year (Unknown expiry) |
61+
| `rise-github-package-registry` | Repository deploy token ([wheel_builder](https://gitlab.com/riseproject/python/wheel_builder/-/settings/repository#js-deploy-tokens)) | n/a (deploy token) | `read_package_registry`, `write_package_registry` | Push wheels GitHub → GitLab package registry | 1 year (June 29th, 2027) |

0 commit comments

Comments
 (0)