About the Multi CPU Architecture category

You can now test your open source software on multiple CPU architectures at Travis CI.

For the past few months, we’ve been working closely with the Travis CI community, the LXD team from Canonical, Arm and Packet.

Thanks to this partnership, Arm-based builds are now available to you, for free, for your open source projects. Arm-based builds are the first ones to use LXD powered containerization to run your builds.

If your public projects are targeted for Linux and Arm CPU Architecture, get started with Arm builds today!

More in the blog: https://blog.travis-ci.com/2019-10-07-multi-cpu-architecture-support
And the docs: https://docs.travis-ci.com/user/multi-cpu-architectures/

When you test out Arm builds in your public projects, please share your feedback with us here.
We’re looking forward to hearing about your experience with multi-CPU architecture support of your builds!

3 Likes

This is wonderful! Thank you.

Tried it out on an opensource project pygame/pygame, and here is some feedback.
Here’s the PR: https://github.com/pygame/pygame/pull/1399

  • please “contact us” link is a 404 on https://docs.travis-ci.com/user/multi-cpu-architectures/
  • the cancel button on amd64 jobs does not show up now (and the arm64 one).
  • seems the python language stuff is not on there. It tries to download python and gets a 404, I guess because the arm64 python hasn’t been built/uploaded yet.
  • arm64 amd64 look very similar visually in the list of jobs, so it’s a bit hard to tell them apart in the list.

cheers,

How do I get a package like “libpcre3-dev” on ARM64?

This is awesome! I am trying this out for RocksDB, some things that seem to be not quite right yet:

  1. Java support seems to be missing - https://travis-ci.org/facebook/rocksdb/jobs/598793639
  2. Is there a convenience environment variable for determining the arch of the build box, e.g. something like a TRAVIS_ARCH?

To answer my own question, the usual way of installing Ubuntu packages works on ARM64: https://docs.travis-ci.com/user/installing-dependencies/

1 Like

Hi @stefantalpalaru!
Happy to see you’re testing ARM64 builds!

EDIT - saw you found the answer :slight_smile:

In case of further questions, please open a thread at Multi CPU Architecture - Travis CI Community - it helps us to track your feedback and response whenever we have something adjusted.

Happy building!

Hello @illume!

I’m really glad you’re trying out the ARM builds. Thanks for the report!
Wrt to python stuff: that’s correct, it’s not present in os image yet (it’s C/C++ focused at the moment). We will add it soon and before it happens one can add before_install step (https://docs.travis-ci.com/user/installing-dependencies/) and run package installation.

P.S. with any other findings - please leave us a message here: https://travis-ci.community/c/environments/multi-cpu-arch - it’s super useful to keep them there for searching and responding.

Hi @adamretter!

Thanks for checking out ARM builds and reporting back.
Yes, Java support is not added yet (we’re working on os images structure for different languages to keep things starting up fast), so if one needed - please install relevant package in before_install step.

Convenience environment variable is not available yet - thanks for that question. It’ll be added over coming couple of weeks or so.

I the meantime, one can determine the arch of build box by running linux script/cli commands,
on ubuntu for example
dpkg --print-architecture
or
uname -m

P.S.

For further feedback, please create a topic in https://travis-ci.community/c/environments/multi-cpu-arch - it’ll help to track things and search for similar reports.

Happy building!

How can I create a VM instance with something resembling the Travis Arm setup? Ran into some C++ stack unwinding issues.

Great to have AArch64 support! Thank you.

I’m trying this for DPDK project. There is permission issue when setting hugepage which is required to run DPDK: https://travis-ci.com/Reyfone/dpdk/jobs/245236623
Used “sudo sh -c ‘echo 1024 > /proc/sys/vm/nr_hugepages’” in setup.sh.

After searching around, it came up to me apparmor policy denied access to some key system directory.


I’m not using any container in my CI configuration. Tried to turn off apparmor as suggested on above page, but didn’t succeed.

When building for amd64, which is VM based environment, the same command run successfully.
Can you suggest how to set hugepage in LXD environment?

Thanks.

Hi @Reyfone!
Happy to see you testing ARM based builds.

Our ARM support currently is powered by ARM+LXD - so your single build job actually is running within LXD container. This means accessing certain system folders or features, that can give access to the whole LXD host, are blocked by apparmor due to security reasons. See one of the topics where it’s been explained already and our updated Multi CPU Architecture documentation

Please re-post a query for huge pages support within LXD as a separate topic in ARM CPU Architecture category so we could track it and handle the answer. We’re gathering feedback on various use-cases, including also the ones where LXD itself is not sufficient due to security constraints.

Hope it helps
Michał

Hi, thank you for ARM support.

I’ve tried to switch my C project to support ARM but I have the following issue: https://travis-ci.com/pavelkryukov/putty-aes-ni/jobs/247940375

/home/travis/.travis/job_stages: line 22: ruby: command not found

Could you please tell if there is a way to fix it?

Thanks,
Pavel

Hi @pavelkryukov

We’ve just updated OS images for ARM builds within LXD (changelog here ) and this should cover some language scenarios as well. Could you re-run your build? If it fails back with the same error, please report as a separate topic in Multi CPU Architecture community forum?

Happy building!
Michał

Hi @illume

  • link fixed, thank you
  • cancel button:

Could you elaborate or provide link to build with missing cancel button? It’s visible on our end:


Best Regards
Michał

https://travis-ci.org/sippy/rtpproxy/jobs/601423523

Same issue here as @pavelkryukov’s . Ruby is still missing with the latest Xenial image I think.

Hi,

below is a screenshot of the missing cancel buttons:

  • It happens when a build is in progress.
  • Clicking on each individual job allows cancelling on the next screen
  • When I click in an individual job, and then press back, the cancel buttons appear.
  • firefox latest Mac

Thanks @illume, we’re looking into this!

1 Like

Thanks @sobomax, updating os images in progress :slight_smile:

https://travis-ci.org/mjnovice/openwhisk-apigateway/jobs/605862167 Am unable to build openwhisk-apigateway on arm.

I got a 404 error on arm:

downloading archive: https://storage.googleapis.com/travis-ci-language-archives/perl/binaries/ubuntu/16.04/aarch64/perl-5.30.tar.bz2

18curl: (22) The requested URL returned error: 404 Not Found