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/ os: linux services: - docker jobs: include: - os: linux arch: amd64 - os: linux arch: arm64 script: # 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-test 2>&1 | cat' branches: except: # Skip copybara branches. - /^test\/cl.*$/