Arch Linux build automation with Buildbot
This buildbot is intended for use with a build master where all your PKGBUILDs resides and a worker that does the handywork and hosts your custom repositories.
- Manual package building
- Automatic VCS package building
- Split PKGBUILD support
- Unattended GPG signing
- Email reports
- Override repo per package in the configuration to handle
multilibpackages in thecommunitylogical group - Add support for VCS url qualifiers (
#commit,#tag,#branch, etc...) - Automatically update packages built from VCS tags or commits
- Both master and worker need
python, seerequirements.txtfor needed libraries - Master optionally needs
git,hgandsvnfor automatic VCS package building - Master optionally needs
gpgfor unatended GPG signing - Worker needs
devtoolsandpacman-contribto build in chroots and generate.SRCINFO
All configuration is done in config.yml in the master directory. You can use config.example.yml as base.
The root of your PKGBUILD collection, separated in logical groups (folders). For example, packages may contain PKGBUILDs from [core] and [extra], community PKGBUILDs from [community] and [multilib], and unsupported PKGBUILDs from AUR.
Note: packages and community are special folders where PKGBUILDs will be looked up in a trunk subdirectory to match our SVN.
The root of all your sources, as defined by SRCDIR in /etc/makepkg.conf. Buildbot will monitor bare VCS repositories in this directory to automatically trigger builds when there are new commits.
The root of all your packages, as defined by PKGDIR in /etc/makepkg.conf. The worker will upload all built packages in that location. Mandatory for signing, and useful if you want to use extrapkg and the likes afterwards.
The root of your repositories on the worker, usually ~/public_html. The path must be absolute.
All repositories will be named after the official repository they target, plus this suffix.
Whether or not to sign packages. GPG must be configured for unattended use on the master, by increasing the cache TTL and possibly using a preset passphrase.
Whether or not to send emails when a package fails to build.
The email address buildbot will be using to send emails.
The email addresses of the report recipients.
Takes a hashmap of usernames and passwords. Using an email as username will automatically fetch your avatar from Gravatar. Leave empty to disable authentication.
The target repositories, all official repositories are defined by default but you may want to restrict, or expand them. Custom repositories need an associated custom-x86_64-build binary the likes of what's in devtools.
These are the logical groups (folders) mentioned earlier.
The name of the logcal group.
The default target repo. It will be used for automatically triggered builds, and pre-selected in forced builds. You can always choose a different repo when doing forced builds.
A list of the packages to be built.
The name of the package. pkgname or pkgbase for split PKGBUILDs.
The name of the dependencies that will be fetched from the unofficial repo when they don't exist in official repositories, or when you need to override them.