language: c env: global: # You can uncomment this to explicitly choose an (old) version of the Arduino IDE #- ARDUINO_IDE_VERSION="1.8.7" - ADDITIONAL_URLS="https://adafruit.github.io/arduino-board-index/package_adafruit_index.json,https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json,https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json" - DOXYFILE=$TRAVIS_BUILD_DIR/.travis/Doxyfile cache: directories: - ~/arduino_ide - ~/.arduino15/packages/ # Blacklist branches: except: - gh-pages # Install dependencies addons: apt: packages: - doxygen jobs: include: - stage: "Build" name: "Feather M0" env: CORE="adafruit:samd" BOARD="adafruit:samd:adafruit_feather_m0" - name: "Arduino Zero" env: CORE="arduino:samd" BOARD="arduino:samd:mzero_bl" - name: "ESP32" env: CORE="esp32:esp32" BOARD="esp32:esp32:d32" - name: "STM32" env: CORE="STM32:stm32@1.8.0" BOARD="STM32:stm32:Nucleo_144:pnum=NUCLEO_F767ZI" script: - arduino-cli compile --warnings all --fqbn $BOARD $PWD/examples/stm32/EthernetHTTPSstm32 - stage: "Documentation" if: branch = master install: skip script: - doxygen $DOXYFILE deploy: provider: pages skip_cleanup: true local_dir: docs github_token: $GITHUB_TOKEN - stage: "Deploy" if: tag is present env: CORE="arduino:samd esp32:esp32 STM32:stm32@1.8.0" script: skip before_deploy: - mkdir tmp-bin - cp library.properties library.properties.old - echo "dot_a_linkage=true" >> library.properties - rm -rf /tmp/arduino-sketch* # cortex-m0plus - arduino-cli compile --fqbn arduino:samd:mzero_bl $PWD/examples/EthernetHTTPS - mkdir tmp-bin/cortex-m0plus - cp "$(find /tmp/ -maxdepth 1 -type d -name "arduino-sketch*" -print | head -n 1)/libraries/SSLClient/SSLClient.a" tmp-bin/cortex-m0plus/SSLClient.a - rm -rf /tmp/arduino-sketch* # cortex-m7 - arduino-cli compile --fqbn STM32:stm32:Nucleo_144:pnum=NUCLEO_F767ZI $PWD/examples/stm32/EthernetHTTPSstm32 - mkdir tmp-bin/cortex-m7 - cp "$(find /tmp/ -maxdepth 1 -type d -name "arduino-sketch*" -print | head -n 1)/libraries/SSLClient/SSLClient.a" tmp-bin/cortex-m7/SSLClient.a - rm -rf /tmp/arduino-sketch* # esp32 - arduino-cli compile --fqbn esp32:esp32:d32 $PWD/examples/EthernetHTTPS - mkdir tmp-bin/esp32 - cp "$(find /tmp/ -maxdepth 1 -type d -name "arduino-sketch*" -print | head -n 1)/libraries/SSLClient/SSLClient.a" tmp-bin/esp32/SSLClient.a # bundle it up! - mv library.properties.old library.properties - echo "precompiled=true" >> library.properties - mv tmp-bin/* src/ - rm -rf tmp-bin - rm -rf .git - find src/ -iname "*.c" -delete - find src/ -iname "*.cpp" -delete - zip -r SSLClient-precompiled.zip . deploy: provider: releases api_key: $GITHUB_TOKEN skip_cleanup: true file: "SSLClient-precompiled.zip" on: tags: true install: - curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=/usr/bin sudo sh - arduino-cli core update-index --additional-urls $ADDITIONAL_URLS - arduino-cli core install arduino:samd -v - arduino-cli core install $CORE -v --additional-urls $ADDITIONAL_URLS - mkdir -p $HOME/Arduino/libraries - rm -rf $HOME/Arduino/libraries/EthernetLarge - git clone https://github.com/OPEnSLab-OSU/EthernetLarge.git $HOME/Arduino/libraries/EthernetLarge - arduino-cli lib install "STM32duino STM32Ethernet" - arduino-cli lib install "PubSubClient" - ln -s $PWD $HOME/Arduino/libraries/. script: - arduino-cli compile --warnings all --fqbn $BOARD $PWD/examples/EthernetHTTPS - arduino-cli compile --warnings all --fqbn $BOARD $PWD/examples/EthernetMultiHTTPS - arduino-cli compile --warnings all --fqbn $BOARD $PWD/examples/EthernetMQTT