banches:
  only:
    - master
language: generic
env:
  global:
    - IDE_VERSION=1.8.8
  matrix:
    - BOARD="esp8266:esp8266:generic:xtal=80,eesz=4M3M,ip=lm2f,exception=disabled,FlashMode=qio,FlashFreq=80" ARDJSON="5.13.5"
    - BOARD="esp32:esp32:esp32:FlashFreq=80,FlashSize=4M" ARDJSON="5.13.5"
    - BOARD="esp8266:esp8266:generic:xtal=80,eesz=4M3M,ip=lm2f,exception=disabled,FlashMode=qio,FlashFreq=80" ARDJSON="6.12.0"
    - BOARD="esp32:esp32:esp32:FlashFreq=80,FlashSize=4M" ARDJSON="6.12.0"
before_install:
  - "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_1.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :1 -ac -screen 0 1280x1024x16"
  - sleep 3
  - export DISPLAY=:1.0
  - wget http://downloads.arduino.cc/arduino-$IDE_VERSION-linux64.tar.xz
  - tar xf arduino-$IDE_VERSION-linux64.tar.xz
  - sudo mv arduino-$IDE_VERSION ~/arduino-ide
  - export PATH=$PATH:~/arduino-ide
  - arduino --pref "boardsmanager.additional.urls=http://arduino.esp8266.com/stable/package_esp8266com_index.json,http://dl.espressif.com/dl/package_esp32_index.json" --save-prefs
  - if [[ "$BOARD" =~ "esp8266:esp8266:" ]]; then
      arduino --install-boards esp8266:esp8266;
    fi
  - if [[ "$BOARD" =~ "esp32:esp32:" ]]; then
      arduino --install-boards esp32:esp32;
    fi
  - arduino --install-library PubSubClient,PageBuilder:1.3.4
  - arduino --install-library ArduinoJson:$ARDJSON
  - buildExampleSketch() { arduino --verify --board $BOARD $PWD/examples/$1/$1.ino; }
install:
  - mkdir -p ~/Arduino/libraries
  - ln -s $PWD ~/Arduino/libraries/.
script:
  - buildExampleSketch ConfigIP
  - buildExampleSketch Credential
  - if [[ "$BOARD" =~ "esp32:esp32:" ]]; then buildExampleSketch CreditMigrate; fi
  - buildExampleSketch Elements
  - buildExampleSketch FileUpload
  - buildExampleSketch FSBrowser
  - buildExampleSketch HandleClient
  - buildExampleSketch HandlePortal
  - buildExampleSketch HandlePortalEX
  - buildExampleSketch HelloWorld
  - buildExampleSketch mqttRSSI
  - buildExampleSketch mqttRSSI_FS
  - buildExampleSketch mqttRSSI_NA
  - buildExampleSketch Simple
  - buildExampleSketch Update
  - buildExampleSketch WebUpdate