|
| 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 | + |
| 27 | +### GitLab for Open Source |
| 28 | + |
| 29 | +We apply for the [GitLab for Open |
| 30 | +Source](https://about.gitlab.com/solutions/open-source/join/) program. |
| 31 | +Membership requires annual renewal. |
| 32 | + |
| 33 | +### CI/CD Pipeline Tokens and Access |
| 34 | + |
| 35 | +The GitLab CI/CD pipelines make use of project tokens, generated at different |
| 36 | +project scopes. Two tokens are defined: |
| 37 | + |
| 38 | +1. `PYTHON_CI_GROUP_TOKEN` - Defined at the "Group" |
| 39 | + ([Python](https://gitlab.com/riseproject/python)) level. Used for triggering |
| 40 | + pipelines for merge requests and most automatic updates and checks. The value |
| 41 | + of this token is inherited by `wheel_builder` as `PYTHON_CI_GROUP_TOKEN` |
| 42 | + under `Settings -> CI/CD Settings -> Variables` (see the [CI/CD variables |
| 43 | + panel](https://gitlab.com/riseproject/python/wheel_builder/-/settings/ci_cd#js-cicd-variables-settings)). |
| 44 | +2. `rise-github-package-registry` - Defined at the "Repository" |
| 45 | + ([wheel_builder](https://gitlab.com/riseproject/python/wheel_builder/-/settings/repository#js-deploy-tokens)) |
| 46 | + level. Used for pushing wheels to the GitLab package registry from GitHub. |
| 47 | + |
| 48 | +These tokens are generated with a 1-year expiry timeline, so they need to be |
| 49 | +regenerated by a project administrator/owner. |
| 50 | + |
| 51 | +#### Token Scope Reference |
| 52 | + |
| 53 | +| Token | Level | Role | Scopes | Used For | Expiry | |
| 54 | +|-------|-------|------|--------|----------|--------| |
| 55 | +| `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) | |
| 56 | +| `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