Auto merge of #34016 - sanxiyn:travis-docker, r=brson

Use Docker for Travis

The primary motivtion is to use system LLVM from ubuntu.com, instead of llvm.org.

Travis provides two environments: Ubuntu 12.04 LTS aka precise by default, and Ubuntu 14.04 LTS aka trusty if you specify dist: trusty. According to travis-ci/travis-ci#5821, Ubuntu 16.04 LTS aka xenial is unlikely to be available this year, and Travis recommends to use Docker.

LLVM 3.7 binary for 12.04 and 14.04 is not available from ubuntu.com, that's why we used llvm.org. But LLVM 3.7 binary for 16.04 is available from ubuntu.com, and we can use Docker to run on 16.04.

Fix #34009.
This commit is contained in:
bors 2016-06-03 00:13:38 -07:00
commit 95206f438f
2 changed files with 34 additions and 8 deletions

View File

@ -1,6 +1,7 @@
language: generic
sudo: required
dist: trusty
services:
- docker
# LLVM takes awhile to check out and otherwise we'll manage the submodules in
# our configure script, so disable auto submodule management.
@ -8,15 +9,15 @@ git:
submodules: false
before_install:
- echo 0 | sudo tee /proc/sys/net/ipv6/conf/lo/disable_ipv6
- echo 'deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main' | sudo tee -a /etc/apt/sources.list
- echo 'deb-src http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.7 main' | sudo tee -a /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get --force-yes install curl make g++ python2.7 git zlib1g-dev libedit-dev llvm-3.7-tools
- docker build -t rust -f src/etc/Dockerfile src/etc
script:
- ./configure --llvm-root=/usr/lib/llvm-3.7
- make tidy && make check-notidy -j4
- docker run -v `pwd`:/build rust
sh -c "
./configure --llvm-root=/usr/lib/llvm-3.7 &&
make tidy &&
make check-notidy -j4
"
# Real testing happens on http://buildbot.rust-lang.org/
#

25
src/etc/Dockerfile Normal file
View File

@ -0,0 +1,25 @@
FROM ubuntu:xenial
# curl
# Download stage0, see src/bootstrap/bootstrap.py
# g++
# Compile LLVM binding in src/rustllvm
# git
# Get commit hash and commit date in version string
# make
# Run build scripts in mk
# libedit-dev zlib1g-dev
# LLVM dependencies as packaged in Ubuntu
# (They are optional, but Ubuntu package enables them)
# llvm-3.7-dev (installed by llvm-3.7-tools)
# LLVM
# llvm-3.7-tools
# FileCheck is used to run tests in src/test/codegen
RUN apt-get update && apt-get -y install \
curl g++ git make \
libedit-dev zlib1g-dev \
llvm-3.7-tools
RUN mkdir /build
WORKDIR /build