summaryrefslogtreecommitdiffhomepage
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml33
1 files changed, 30 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml
index 40c8773fa..2d9fa80a1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,27 @@
language: shell
dist: xenial
+git:
+ clone: false # Clone manually in before_install
+before_install:
+ - set -e -o pipefail
+ - |
+ if [ "${TRAVIS_PULL_REQUEST}" = false ]; then
+ # This is not a PR build, fetch and checkout the commit being tested
+ git clone -q --depth 1 "https://github.com/${TRAVIS_REPO_SLUG}.git" "${TRAVIS_REPO_SLUG}"
+ cd "${TRAVIS_REPO_SLUG}"
+ git fetch origin "${TRAVIS_COMMIT}" --depth 1
+ git checkout -qf "${TRAVIS_COMMIT}"
+ else
+ # This is a PR build, simulate +refs/pull/{num}/merge.
+ # We can do that by fetching +refs/pull/{num}/head and cherry picking it
+ # onto the target branch.
+ git clone -q --branch "${TRAVIS_BRANCH}" --depth 1 "https://github.com/${TRAVIS_REPO_SLUG}.git" "${TRAVIS_REPO_SLUG}"
+ cd "${TRAVIS_REPO_SLUG}"
+ git fetch origin "+refs/pull/${TRAVIS_PULL_REQUEST}/head" --depth 1
+ git config --global user.email "$(git log -1 FETCH_HEAD --pretty="%cE")"
+ git config --global user.name "$(git log -1 FETCH_HEAD --pretty="%aN")"
+ git cherry-pick --strategy=recursive -X theirs --keep-redundant-commits FETCH_HEAD
+ fi
cache:
directories:
- /home/travis/.cache/bazel/
@@ -8,12 +30,17 @@ services:
- docker
jobs:
include:
- - os: linux
- arch: amd64
+ # AMD64 builds are tested on kokoro, so don't run them in travis to save
+ # capacity for arm64 builds.
+ # - os: linux
+ # arch: amd64
- os: linux
arch: arm64
script:
- - uname -a && make smoke-test
+ # On arm64, we need to create our own pipes for stderr and stdout,
+ # otherwise we will not be able to open /dev/stderr. This is probably
+ # due to AppArmor rules.
+ - bash -xeo pipefail -c 'uname -a && make smoke-tests 2>&1 | cat'
branches:
except:
# Skip copybara branches.