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:
- You can build your private or open-source projects on https://travis-ci.com
- Using travis-ci.org? See details on migrating repositories to travis-ci.com
- LXD and VM virtualization is available
- Fast build times!
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!
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
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
os: linux dist: focal group: edge arch: arm64-graviton2 compiler: clang script: - clang --version
Please note: The
group: edgetag is required for now. We usually promote the
edgebuild 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: edgetag will not be required.
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
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’
You have to explicitly set
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.