---
language: go
sudo: required
dist: xenial
os:
  - linux
go_import_path: github.com/ncw/rclone
before_install:
  - git fetch --unshallow --tags
  - |
    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
      sudo modprobe fuse
      sudo chmod 666 /dev/fuse
      sudo chown root:$USER /etc/fuse.conf
    fi
    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      brew update
      brew tap caskroom/cask
      brew cask install osxfuse
    fi
    if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
      choco install -y winfsp zip make
      cd ../..                  # fix crlf in git checkout
      mv $TRAVIS_REPO_SLUG _old
      git config --global core.autocrlf false
      git clone _old $TRAVIS_REPO_SLUG
      cd $TRAVIS_REPO_SLUG
    fi
install:
  - make vars
env:
  global:
    - GOTAGS=cmount
    - GOMAXPROCS=8              # workaround for cmd/mount tests locking up - see #3154
    - GO111MODULE=off
    - GITHUB_USER=ncw
    - secure: gU8gCV9R8Kv/Gn0SmCP37edpfIbPoSvsub48GK7qxJdTU628H0KOMiZW/T0gtV5d67XJZ4eKnhJYlxwwxgSgfejO32Rh5GlYEKT/FuVoH0BD72dM1GDFLSrUiUYOdoHvf/BKIFA3dJFT4lk2ASy4Zh7SEoXHG6goBlqUpYx8hVA=
    - secure: Uaiveq+/rvQjO03GzvQZV2J6pZfedoFuhdXrLVhhHSeP4ZBca0olw7xaqkabUyP3LkVYXMDSX8EbyeuQT1jfEe5wp5sBdfaDtuYW6heFyjiHIIIbVyBfGXon6db4ETBjOaX/Xt8uktrgNge6qFlj+kpnmpFGxf0jmDLw1zgg7tk=
addons:
  apt:
    packages:
      - fuse
      - libfuse-dev
      - rpm
      - pkg-config
cache:
  directories:
    - $HOME/.cache/go-build
matrix:
  allow_failures:
    - go: tip
  include:
    - go: 1.9.x
      script:
        - make quicktest
    - go: 1.10.x
      script:
        - make quicktest
    - go: 1.11.x
      script:
        - make quicktest
    - go: 1.12.x
      name: Linux
      env:
        - GOTAGS=cmount
        - BUILD_FLAGS='-include "^linux/"'
        - DEPLOY=true
      script:
        - make build_dep
        - make check
        - make quicktest
    - go: 1.12.x
      name: Go Modules / Race
      env:
        - GO111MODULE=on
        - GOPROXY=https://proxy.golang.org
      script:
        - make quicktest
        - make racequicktest
    - go: 1.12.x
      name: Other OS
      env:
        - DEPLOY=true
        - BUILD_FLAGS='-exclude "^(windows|darwin|linux)/"'
      script:
        - make
        - make compile_all
    - go: 1.12.x
      name: macOS
      os: osx
      env:
        - GOTAGS=  # cmount doesn't work on osx travis for some reason
        - BUILD_FLAGS='-include "^darwin/" -cgo'
        - DEPLOY=true
      cache:
        directories:
          - $HOME/Library/Caches/go-build
      script:
        - make
        - make quicktest
        - make racequicktest
    # - os: windows
    #   name: Windows
    #   go: 1.12.x
    #   env:
    #     - GOTAGS=cmount
    #     - CPATH='C:\Program Files (x86)\WinFsp\inc\fuse'
    #     - BUILD_FLAGS='-include "^windows/amd64" -cgo' # 386 doesn't build yet
    #   #filter_secrets: false     # works around a problem with secrets under windows
    #   cache:
    #     directories:
    #       - ${LocalAppData}/go-build
    #   script:
    #     - make
    #     - make quicktest
    #     - make racequicktest
    - go: tip
      script:
        - make quicktest

deploy:
  provider: script
  script: make travis_beta
  skip_cleanup: true
  on:
    repo: ncw/rclone
    all_branches: true
    condition: $TRAVIS_PULL_REQUEST == false && $DEPLOY == true