[aur-general] Continuous integration of AUR packages

Baptiste Jonglez baptiste at bitsofnetworks.org
Thu Feb 18 18:50:28 UTC 2016


Hi,

On Thu, Feb 18, 2016 at 12:25:53PM +0000, Justin Dray wrote:
> 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.

Yes, I would be interested!

Out of curiosity, why do you use docker containers instead of the
"official" method with chroots?

  https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot


> 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)
> >
> >
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <https://lists.archlinux.org/pipermail/aur-general/attachments/20160218/602b201b/attachment.asc>


More information about the aur-general mailing list