[aur-general] Continuous integration of AUR packages

Justin Dray justin at dray.be
Thu Feb 18 12:25:53 UTC 2016


I actually have a Jenkins setup for my packages that does almost exactly
that, I have a job generator build that I give an AUR package name to and
that's all the config for new packages, and it builds them in a docker
container.

You can obviously set up dependencies between the jobs to build in order,
but that part isn't automatic yet. Its been pretty reliable for me over the
past year or so since I last really changed anything.

If you're interested, let me know and I can share the scripts and stuff.
Just on my phone at the moment or I would link them here.

Cheers,
Justin

On Thu, Feb 18, 2016, 9:51 PM Baptiste Jonglez <baptiste at bitsofnetworks.org>
wrote:

> Hi,
>
> I would like to run some kind of continuous integration of my AUR
> packages.  The goal is to know when a package I maintain fails to build
> because either:
>
> 1/ its dependencies have been updated (new API, new incompatible version
>    of GCC, ...)
>
> 2/ for -git packages, changes made upstream broke something (new
>    dependency needed, new build system...)
>
> The scripts in devtools [1] look like they should work just fine to
> automate these kind of builds.  After all, they are used to build the
> official Archlinux packages.
>
> However, I found that the build scripts do not really handle dependencies.
> When building a given package, they just install deps and makedeps from
> the existing Archlinux repositories.  This is an issue when AUR packages
> depend on each other, because then dependencies cannot be installed from
> the Archlinux repositories...
>
> It *is* possible to manually pass packages to install in the chroot before
> building, but this is far from convenient.  For instance, ring-daemon
> depends on opendht, so I would need to do this:
>
>     cd opendht
>     extra-x86_64-build
>     cd ../ring-daemon
>     extra-x86_64-build -- -I ../opendht/opendht-0.5.1-1-x86_64.pkg.tar.xz
>
> When there are multiple dependencies, it quickly becomes a nightmare to
> automate (especially because dependencies need to be passed in the right
> order).
>
> Is there any script that automates dependency handling when building?
> Basically, it would probably need to perform a topological sort, build
> packages in this order, and push them to a local repository to be able to
> build later packages.
> Or did I take the wrong approach entirely?
>
> Thanks,
> Baptiste
>
> [1] https://projects.archlinux.org/devtools.git/
>
> PS : Some existing efforts I found about CI with Arch:
>
> -
> https://lists.archlinux.org/pipermail/arch-dev-public/2014-November/026757.html
>   https://jenkins.arch-ci.org/
>   No script provided, site appears to be down
>
> - http://openbuildservice.org/2012/09/10/arch-linux-support/
>   Source code is unreadable (enormous Perl scripts, no modularity)
>
>


More information about the aur-general mailing list