# Travis configuration file for downloading and building OP-TEE according to the
# instructions in build.git
language: bash

notifications:
  email:
    recipients:
      - op-tee@linaro.org
    on_success: change
    on_failure: always

dist: trusty
sudo: required

cache:
  directories:
    - $HOME/.ccache

git:
  depth: 10

after_script:
  - ccache -s

before_install:
  - ccache -s
  - sudo dpkg --add-architecture i386
  - sudo apt-get update -qq
  # Package list taken from README.md
  - sudo apt-get install -qq -y android-tools-adb android-tools-fastboot autoconf automake bc bison build-essential cscope curl device-tree-compiler flex ftp-upload gdisk iasl libattr1-dev libc6:i386 libcap-dev libfdt-dev libftdi-dev libglib2.0-dev libhidapi-dev libncurses5-dev libpixman-1-dev libssl-dev libstdc++6:i386 libtool libz1:i386 make mtools netcat python-crypto python-serial unzip uuid-dev xdg-utils xterm xz-utils zlib1g-dev

install: true

env:
  - $REPO_PROJ=default
  - $REPO_PROJ=fvp
  - $REPO_PROJ=hikey
  - $REPO_PROJ=hikey960
  - $REPO_PROJ=juno
  - $REPO_PROJ=qemu_v8
  - $REPO_PROJ=rpi3

before_script:
  - export CCACHE_BASEDIR=$HOME/$REPO_PROJ
  - export CCACHE_NOHASHDIR=1
  - mkdir -p $HOME/bin
  - cd $HOME/bin && wget https://storage.googleapis.com/git-repo-downloads/repo && chmod +x repo
  - export PATH=$HOME/bin:$PATH
  - mkdir -p $HOME/$REPO_PROJ

script:
  # Special case for FVP, since we check for the Foundation_Platformpkg folder
  # in the makefile.
  - if [ $REPO_PROJ == "fvp" ]; then mkdir -p $HOME/$REPO_PROJ/Foundation_Platformpkg; fi
  # Use the manifest from the branch itself we're pushing to.
  - |
        if [ "$TRAVIS_EVENT_TYPE" == "pull_request" ]; then
                slug=$TRAVIS_PULL_REQUEST_SLUG
                branch=$TRAVIS_PULL_REQUEST_BRANCH
        else
                slug=$TRAVIS_REPO_SLUG
                branch=$TRAVIS_BRANCH
        fi
        echo "Getting ${REPO_PROJ}.xml from https://github.com/$slug using branch $branch"
        cd $HOME/$REPO_PROJ && repo init -u https://github.com/$slug -b $branch -m ${REPO_PROJ}.xml </dev/null && repo sync -j10 --no-clone-bundle --no-tags --quiet
  # Fetch a local copy of dtc+libfdt to avoid issues with a possibly outdated libfdt-dev
  - if [ $REPO_PROJ == "qemu_v8" ]; then cd $HOME/$REPO_PROJ/qemu && git submodule update --init dtc; fi
  # Dump the content of the manifest (for debug purpose)
  - cat $HOME/$REPO_PROJ/.repo/manifests/${REPO_PROJ}.xml
  - cd $HOME/$REPO_PROJ/build && make -f toolchain.mk toolchains -j3 && make all -j`nproc`
