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 23:06:00 +0200

I did some performance tests with my cups-epson-escpr pull request:

x86_64: 48s

armhf via qemu: 334s

So it looks that the emulation is out of question for automated CI.

Am 19.09.18 um 21:01 schrieb Michael Wyraz:
> 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
> ---
>


---
Unsubscribe:  alpine-devel+unsubscribe_at_lists.alpinelinux.org
Help:         alpine-devel+help_at_lists.alpinelinux.org
---
Received on Wed Sep 19 2018 - 23:06:00 UTC