# No language: we download vim and compile it oursselves
language: generic

cache:
  # Enable cache folder
  bundler: true
  directories:
    - $HOME/docker_images

before_cache:
  # Save tagged docker images. Info at https://github.com/travis-ci/travis-ci/issues/5358#issuecomment-248915326
  - >
    mkdir -p $HOME/docker_images && docker images -a --filter='dangling=false' --format '{{.Repository}}:{{.Tag}} {{.ID}}'
    | xargs -n 2 -t sh -c 'test -e $HOME/docker_images/$1.tar.gz || docker save $0 | gzip -2 > $HOME/docker_images/$1.tar.gz'

before_install:
  # Install docker
  - n_image=$(ls -1 $HOME/docker_images/*.tar.gz | wc -l)
  - if (( $n_image )); then ls $HOME/docker_images/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load";
    else docker build --tag vimwiki .;
    fi

env:
  # Define jobs <- vim version <- hard copied from Dockerfile
  # First to be launched
  - VIM_VERSION=vint
  - VIM_VERSION=vim_7.3.429
  - VIM_VERSION=nvim_0.3.8
  - VIM_VERSION=vim_8.1.0519
  # More
  - VIM_VERSION=vim_7.4.1099 PATTERN='[a-k]*.vader'
  - VIM_VERSION=vim_7.4.1546 PATTERN='l*.vader'
  - VIM_VERSION=vim_8.0.0027 PATTERN='[m-z]*.vader'

script:
  # Run All tests
  - pushd test
  - if [[ "$VIM_VERSION" == 'vint' ]]; then bash run_tests.sh -v -t vint;
    elif [[ ! -z "$PATTERN" ]]; then bash run_tests.sh -v -t vader -n "$VIM_VERSION" -f "$PATTERN";
    else bash run_tests.sh -v -t vader -n "$VIM_VERSION";
    fi
  - popd


# vim:sw=2:
