Project:Repository mirror and CI

From Gentoo Wiki
Jump to: navigation, search
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:

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:

FILE /etc/layman/layman.cfgSetting layman to use mirrors
overlays  :
    https://qa-reports.gentoo.org/output/repos/repositories.xml
Note
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:

CODE Key fingerprints
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:

FILE /etc/portage/repos.conf/gentoo.confSyncing gentoo via git with verification
[gentoo]
sync-git-verify-commit-signature = true

Additional resources: