Announcing General Availability of Graviton2 CPU Support!

AWS Graviton2 logo

Back in May, we announced the upcoming support of being able to build and test your projects using the newly released AWS Graviton2 processor. This was a huge announcement for us and continues the progress we aim for in order to provide the latest and greatest technology for you to keep pace with your builds.

A lot has been happening behind the scenes since then, and we’ve been working closely with the AWS team in order to refine the Graviton2 integration and make sure everything is polished ready for you to try. It’s easy to up and it’s really FAST. We’re looking forward to seeing what you build!

If you’re not yet a Travis CI user, sign up now to get set up with AWS Graviton2!

What to expect

Want to start building with AWS Graviton2? This is what you need to know:

LXD and VM virtualizations

Last year, with the Multi CPU support, we introduced the ability to run builds within LXD containers. These are much faster to start, give nearly VM-alike possibilities and thanks to your feedback, we’ve been working on stabilizing the solution. This work is still in progress yet we’re in much better place today.

We want to use this occasion to thank you for all your reports in our Community Forum - we’re closely watching it, gathering the input and working on it!

Containers do have some restrictions which prevents you in specific build scenarios (requiring access to privileged file systems in particular) from utilizing our LXD virtualization. Even though for the majority of cases LXD containers are a good solution, it is clear that some of you need a traditional, isolated Virtual Machine solution to be still available. Therefore with extending our Arm64 builds to utilize full power of AWS Graviton2 CPUs you can now select whether you want to use LXD container or ‘full VM’.

This is now available for Arm64 on AWS Graviton2 builds only, however will be soon extended. Watch out for our announcements and multi CPU documentation updates!

Available distributions

Following Arm64 distributions of Ubuntu are available for you as LXD containers:

  • Xenial (16.04)
  • Bionic (18.04)
  • Focal (20.04)

Following Arm64 distribution of Ubuntu is available for you as a full VM option:

  • Focal (20.04)

At the moment Xenial and Bionic are not prepared for the full VM option on Arm64.

Ubuntu remains the main Linux build environment for Travis CI and we will be continuing our way towards utilizing LXD containers in order to deliver fast starting builds.

Shall you need more Ubuntu distributions as a ‘full vm’ option for Arm64 or are interested in additional OS, please file a request in our Community Forum or contact us.

How to get started

Running builds on AWS Graviton2 is available on https://travis-ci.com, and can be easily set up by adding the following to your .travis.yml file:

os: linux
arch: arm64-graviton2

Here’s a sample .travis.yml file to show essentially the structure of the .travis.yml files that will consist of arm64-graviton2 variables.

os: linux
dist: focal
group: edge
arch: arm64-graviton2
compiler: clang
script:
  - clang --version

Please note: The group: edge tag is required for now. We usually promote the edge build environment images only after a couple of weeks in actual production, regardless of the OS, distribution or underlying CPU. You can subscribe to the Travis CI changelog feed to get the notification when it happens. Once it’s promoted, the group: edge tag will not be required.

Invoking LXD

If you want to run your AWS Graviton2 builds using LXD container, add the following:

os: linux
virt: lxd     # this will redirect you to LXD based container - very fast to start and run

Full VM

Alternatively, if you want to run things under so called ‘full VM’ on your AWS Graviton2 build, add this:

os: linux
dist: focal 
virt: vm     # this will redirect you to ‘full-vm’

Quick tips

You have to explicitly set virt: and group: keys to invoke the AWS Graviton2 CPU. Otherwise, your builds will be routed to the Travis CI default amd64 environment.

There are two Arm64 related architecture tags available at the moment of writing this article: arch: arm64 and arch: arm64-graviton2. The difference is that arm64 is available for OSS only, both on travis-ci.org and travis-ci.com while arm64-graviton2 is available on travis-ci.com only and both for OSS and commercial usage. It will be merged to a single architectural tag at some point, but it requires some more time.

Since AWS Graviton2 is available on travis-ci.com only if you want to use it and you are using only travis-ci.org - please consider migrating to travis-ci.com. In order to do that please follow our instructions. The travis-ci.com supports both OSS and commercial usage.

Go ahead, build awesome software with Travis CI and AWS Graviton2!

Where to find out more

You can find out more about the new Arm on AWS Graviton2 integration by reading about the Travis CI build environment and building on multi-CPU architectures. Be sure to leave your feedback and join the discussion over at the community forum.

Additionally, you can read more about AWS Graviton2 here:

Not a Travis CI user yet? Sign up for a free account!

Looking for something more bespoke for your builds? Try a free trial of Travis CI Enterprise.