Mail archive
alpine-devel

Re: [alpine-devel] Proposal: Multi-Arch matrix builds on travis-ci

From: Michael Wyraz <michael_at_wyraz.de>
Date: Wed, 19 Sep 2018 21:01:26 +0200

Hallo Jakub,

thanks for the information. The time was not wasted, I learned a lot
about aport build environment and binfmt ;-)

Did you do any performance tests to verify how slow it actually is?

IMO we should provide an easy way for devs to test-build for different
arches to reduce the hurdle to provide patches and pull requests (which
is IMO _way_ to high because it needs an alpine setup and many manual
steps, even for native builds). So if travis is not the way to go and
unless we have something else, maybe we can find another way to provide
this (maybe using docker?)

Michael.


> Hi,
>
> I'm sorry to say that, but you're kinda reinventing the wheel. This
> exact approach is already used in [alpine-chroot-install], which is
> used e.g. for building static binaries in [apk-tools] repository.
>
> I didn't use it in aports intentionally, because it's *very* slow.
> Many aports would fail to build due to exceeding the time limit (50
> minutes) and it would significantly increase waiting time for all
> builds (due to exhausted job queue).
>
> This is not the way to go. The better way is to migrate to a
> self-hosted CI with builders on various architectures. For example
> sr.ht proposed by Drew DeVault looks very promising.
>
> >> Unsupported ioctl: cmd=0xffffffff80045200
>
> See the note in [1].
>
> Jakub
>
> [alpine-chroot-install]:
> https://github.com/alpinelinux/alpine-chroot-install
> [apk-tools]: https://github.com/alpinelinux/apk-tools
> [1]: https://github.com/alpinelinux/alpine-chroot-install#requirements
>
> On 9/19/18 6:19 AM, Michael Wyraz wrote:
>> Manjunath,
>>
>> I saw that error - it should be fixed in later qemu versions but I
>> did not had enough time to get it running on travis' old Ubuntu
>> (would need to be backported).
>>
>> Before I spend lot of time in this idea, I'd first like to hear what
>> devs say about it.
>>
>> Regards,
>>
>> Michael.
>>
>>
>>> I love to see something like this working in Travis to avoid
>>> dependency on the native requirement, but I see following error in
>>> arm emulation mode:
>>> https://travis-ci.org/micw/aports/jobs/430225451#L836
>>> Generating RSA private key, 2048 bit long modulus
>>> qemu: Unsupported syscall: 384
>>> Unsupported ioctl: cmd=0xffffffff80045200
>>> This basically means that qemu failed to emulate one of that
>>> instruction on amd64 architecture, but I'm not sure which command
>>> threw this error message and how that script exited without any error.
>>> Thanks,
>>> Manjunath.
>>>
>>>     ----- Original message -----
>>>     From: Michael Wyraz <michael_at_wyraz.de>
>>>     To: alpine-devel_at_lists.alpinelinux.org
>>>     Cc:
>>>     Subject: [alpine-devel] Proposal: Multi-Arch matrix builds on
>>>     travis-ci
>>>     Date: Wed, Sep 19, 2018 2:51 AM
>>>     Hello Alpine Devs,
>>>
>>>     today I had the idea to add multiple arch support to travis-ci
>>> builds,
>>>     so that CI can be done on other platforms than x86_64.
>>>
>>>     So I created a PoC that looks promising:
>>>     https://github.com/micw/aports/pull/2
>>>
>>>     See it in action at:
>>>     https://travis-ci.org/micw/aports/builds/430225449
>>>
>>>     It uses qemu-arm-static and binfmt-support to allow execution of
>>> arm
>>>     code on travis.
>>>
>>>     Some work is still to be done to use it productive (use newer qemu,
>>>     modify the build script to only build packages for the current
>>>     architecture but that should be easy to achieve).
>>>
>>>     Please let me know what you think about it and if we should go
>>>     this way
>>>     (as intermediate solution unless we have native CI).
>>>
>>>     Best regards,
>>>
>>>     Michael.
>>>
>>>
>>>
>>>
>>>     ---
>>>     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 ---
>
>
> ---
> 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 Wed Sep 19 2018 - 21:01:26 UTC