This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Project:Repository mirror and CI
Repository mirror and CI | |
---|---|
Description | The repo-mirror-ci project aims to run basic QA checks on all listed Gentoo repositories and provide syncing mirrors for them (with pre-generated metadata cache). |
Project email | repo-qa-checks@gentoo.org |
Lead(s) |
No lead election date set |
Member(s) |
|
Subproject(s) (and inherited member(s)) |
(none) |
Parent Project | Gentoo Overlays |
Project listing |
The project is currently providing three services for Gentoo:
- syncing git mirrors of all registered Gentoo repositories (including basic QA),
- pkgcheck CI running on master branch of gentoo.git repository and pull requests,
- pull request assignment and bug ↔ PR linking.
Schedule
The scripts are running on the following schedule:
- pull request assignment — every 4 minutes
- repository mirrors + gentoo CI — every 20 minutes (with approximate runtime of 4–6 minutes for repo updates, followed by 10 minutes of CI runtime)
- pull request CI — every 20 minutes (with approximate runtime of 15 minutes)
Hardware/hosting
The scripts are currently running on Gentoo Infrastructure machines. The report repositories and syncing mirror of Gentoo repository are hosted on Gentoo Infrastructure. Hosting mirrors of all repositories (including a second mirror of Gentoo) are hosted on GitHub.
Thanks
I would like to thank Todd Goodman who has supported this project since its very beginning. The scripts were running on his private hardware until they were migrated to Gentoo Infastructure on 2018-06-02.
Scripts
All the scripts are open source. They can be found in the following repositories:
- repo-mirror-ci for main set of scripts
- pkgcheck-result-parser that parses pkgcheck XML output and generates HTML reports
- mgorny/pkgcore for additional pkgcore patches used by the system
- mgorny/pkgcheck for additional pkgcheck patches used by the system
Repository mirrors
The repository mirrors provide exact copies of all registered Gentoo repositories with all the caches pregenerated. Therefore, they are suitable for direct use for syncing.
The app-portage/eselect-repository tool defaults to using gentoo-mirror list.
In order to make app-portage/layman use the mirrors instead of original repositories, use the following configuration:
/etc/layman/layman.cfg
Setting layman to use mirrorsoverlays : https://qa-reports.gentoo.org/output/repos/repositories.xml
The mirrors are now built on Gentoo Infrastructure, and the key used to sign commits has been changed. Since version 20180530, the key is included in the app-crypt/openpgp-keys-gentoo-release package that is also used for rsync verification. Therefore, you no longer have to install custom package or override the key location — the defaults will work just fine.
The commits to Gentoo repository mirror are OpenPGP-signed. The key fingerprint is listed below:
Primary key fingerprint: EF95 38C9 E8E6 4311 A52C DEDF A13D 0EF1 914E 7A72
In order to enable git verification in Portage, please add the following bits to your gentoo section of repos.conf:
/etc/portage/repos.conf/gentoo.conf
Syncing gentoo via git with verification[gentoo] sync-git-verify-commit-signature = true
Additional resources: