Mail archive
alpine-devel

Re: [alpine-devel] rethinking the building infra

From: Daniel Isaksen <d_at_duniel.no>
Date: Tue, 6 Feb 2018 01:43:58 +0100

A small addition - this is in development, and some hands on it would be
nice: https://github.com/kaniini/abuildd

- Daniel

On Tue, Feb 6, 2018 at 1:39 AM, Natanael Copa <ncopa_at_alpinelinux.org> wrote:

> Hi!
>
> I think we need to rethink the building infrastructure. The current
> build scripts were written as a quick and dirt way to get started and
> have lived longer way longer than originally planned. It simply does
> not scale and is very fragile.
>
> I guess I don't need to go any deeper into why we need replace it...
>
> I'd like to discuss what we need from the build infra and why, before we
> start talk about how to do it and what implementation etc.
>
> Here are some things I want a new building infra should be able to
> do:
>
> - automatic build on git push
>
> There should not be needed to do anything more than do a git push to
> get the package built and uploaded. Like we have today, but with
> better error reporting.
>
> - isolated environment for each build
>
> each build should set up an isolated enviroment and destroy it when
> build is done. This could be a container but it would be nice to be
> able to set up a disposable build env in a vm in case we want hook it
> into github PRs or similar. It should also kill everything after
> build and test is done so we dont get any remains of test suites that
> does not clean up after themselves (like redis and epmd)
>
> - support multi architectures
>
> need to support x86_64, x86, armhf, aarch64, ppc64le and s390x. Would
> be nice it its not too complicated to add new architectures.
>
> - support parallel building
>
> would be nice to be able to distribute the workload over available
> build servers. Should be possible and relatively easy to add new
> hardware to the pool or remove or replace old without taking
> everything down.
>
> - support cross compile
>
> would be nice to cross compile packages that (easily) can be cross
> compiled. For example, we could let a big x86_64 or ppc64le machine
> build linux kernel for armhf instead doing that on the slow armhf
> server. Packages that cannot be cross compiled should be built on
> native hardware.
>
> - separate out signing process of packages and index
>
> Would be nice if we could give access to build servers to more
> people without giving those people access to the private signing keys.
>
> - build infra should be able to be used as CI
>
> We need do automatic compile checks of contributions, for example via
> github pull requests or something corresponding.
>
> - efficient caching
>
> Would be nice to not need to git clone the entire repo for every
> build for every server. Would be nice if we checkout a shared git
> repo or do something so data does not goes over the wire more than
> necessary. Same goes for source and apk packages.
>
> Anything else we need from the building infra?
>
> -nc
>
>
> ---
> Unsubscribe: alpine-devel+unsubscribe_at_lists.alpinelinux.org
> Help: alpine-devel+help_at_lists.alpinelinux.org
> ---
>
>



---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Tue Feb 06 2018 - 01:43:58 UTC