language: generic
dist: focal
addons:
  apt:
    packages:
      - zsh
    #  - ksh
    #  - gcc-4.8
    #  - g++-4.8

# https://gist.github.com/iedemam/9830045
git:
  submodules: false

cache:
  ccache: true
  directories:
    - $TRAVIS_BUILD_DIR/.cache
    - $TRAVIS_BUILD_DIR/node_modules
before_install:
  - sudo sed -i 's/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf
  - sudo update-ca-certificates -f

  # https://gist.github.com/iedemam/9830045
  - sed -i 's/git@github.com:/https:\/\/github.com\//' .gitmodules
  - git submodule update --init --recursive

  - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL
  - curl --version
  - wget --version
  - bash --version | head
  - zsh  --version
  - dpkg -s dash | grep ^Version | awk '{print $2}'
  # install python
  - pyenv local 2.7.18 || pyenv install 2.7.18
  - pyenv local 2.7.18 || echo 'pyenv failed'
  - python -V
install:
  - if [ -z "${SHELLCHECK-}" ]; then nvm install 16 && nvm unalias default && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi
  - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
script:
  - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ] || [ "${TEST_SUITE}" = 'xenial' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi
before_cache:
  - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi
jobs:
  include:
    - env: SHELL=bash TEST_SUITE=installation_node
      dist: xenial
    - env: SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1
      dist: xenial
    - env: SHELL=sh TEST_SUITE=installation_node
      dist: xenial
    - env: SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1
      dist: xenial
    - env: SHELL=dash TEST_SUITE=installation_node
      dist: xenial
    - env: SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1
      dist: xenial
    - env: SHELL=zsh TEST_SUITE=installation_node
      dist: xenial
    - env: SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1
      dist: xenial
    #- env: SHELL=ksh TEST_SUITE=installation_node
    #  dist: xenial
    #- env: SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1
    #  dist: xenial
    - env: SHELL=bash TEST_SUITE=xenial
      dist: xenial
    - env: SHELL=sh TEST_SUITE=xenial
      dist: xenial
    - env: SHELL=dash TEST_SUITE=xenial
      dist: xenial
    - env: SHELL=zsh TEST_SUITE=xenial
      dist: xenial
    #- env: SHELL=ksh TEST_SUITE=xenial
    #  dist: xenial
env:
  global:
    - CXX=g++
    - CC=gcc
    - PATH="$(echo $PATH | sed 's/::/:/')"
    - PATH="/usr/lib/ccache/:$PATH"
    - NVM_DIR="${TRAVIS_BUILD_DIR}"
  matrix:
    - SHELL=sh TEST_SUITE=fast
    - SHELL=dash TEST_SUITE=fast
    - SHELL=bash TEST_SUITE=fast
    - SHELL=zsh TEST_SUITE=fast
    #  - SHELL=ksh TEST_SUITE=fast
    - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1
    - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1
    - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1
    - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1
    #  - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1
