language: node_js
dist: trusty
sudo: required
node_js:
  - "8"

addons:
    chrome: stable

before_install:
    - export CHROME_BIN=chromium-browser
    - export DISPLAY=:99.0
    - sh -e /etc/init.d/xvfb start

env:
  matrix:
    - MODULE=core
    - MODULE=insights
    - MODULE=process-services
    - MODULE=content-services
    - MODULE=demo-shell
    - MODULE=packaging

install:
    - if ([ "$MODULE" != "demo-shell" ]); then
        if ([ "$TRAVIS_BRANCH" = "master" ]); then
            (./scripts/npm-build-all.sh  || exit 1;);
        else
            (./scripts/npm-build-all.sh  -vjsapi alpha || exit 1;);
        fi
      fi

script:
    - if ([ "$MODULE" == "core" ]); then
            (./scripts/npm-build-all.sh -si -sb -t "core" || exit 1;);
      fi

    - if ([ "$MODULE" == "process-services" ]); then
            (./scripts/npm-build-all.sh -si -sb -t "process-services" || exit 1;);
      fi

    - if ([ "$MODULE" == "insights" ]); then
            (./scripts/npm-build-all.sh -si -sb -t "insights" || exit 1;);
      fi

    - if ([ "$MODULE" == "content-services" ]); then
            (./scripts/npm-build-all.sh -si -sb -t "content-services" || exit 1;);
      fi

    - if ([ "$MODULE" == "packaging" ]); then
            (cd lib && npm run new-build || exit 1;);
      fi

    - if ([ "$MODULE" == "demo-shell" ]); then
       if ([ "$TRAVIS_BRANCH" = "master" ]); then
            (./scripts/start.sh -t -ss || exit 1;);
       else
            (./scripts/start.sh -dev -t -ss -vjsapi alpha || exit 1;);
       fi
      fi

# jobs:
#   include:
#     - stage: Publish alpha to NPM
#       before_install: skip
#       install: skip
#       script: skip
#       deploy:
#         provider: script
#         script: (./scripts/update-version.sh -v $(./scripts/next_version.sh)-$(git rev-parse HEAD) -vj $(npm view alfresco-js-api@alpha version) -gnu) && (./scripts/npm-publish.sh -r $NPM_REGISTRY_ADDRESS -token $NPM_REGISTRY_TOKEN -t alpha --sleep 20 || exit 1;);
#         on:
#           branch: development
#         skip_cleanup: true
#     - stage: Publish beta to NPM
#       before_install: skip
#       install: skip
#       script: skip
#       deploy:
#         provider: script
#         script: (./scripts/update-version.sh -v $TRAVIS_TAG -gnu) && (./scripts/npm-publish.sh -r $NPM_REGISTRY_ADDRESS -token $NPM_REGISTRY_TOKEN -t beta --sleep 20 || exit 1;);
#         on:
#           tags: true
#         skip_cleanup: true


# Send coverage data to codecov
after_success:
  bash <(curl -s https://codecov.io/bash) -X gcov

cache:
  directories:
  - demo-shell/node_modules
  - lib/node_modules
