diff --git a/.travis.yml b/.travis.yml index 01f1e10ea..e16a1898e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,35 +1,38 @@ -sudo: true +sudo: false + language: java os: - linux - - osx + +addons: + apt: + packages: + - ant jdk: - oraclejdk8 script: - - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get update -qq; fi - - if [ "$TRAVIS_OS_NAME" = "linux" ]; then sudo apt-get install -qq ant; fi - pushd build - - echo "" | ant dist + - echo "" | ant build - popd -#- bash -x ./generate-appimage - -deploy: - provider: releases - api_key: - secure: eKHcAMuC58JZKRsn1QwbiYE4aL/9dZsybDqqHTo1dUo8x9+3fGed/Dci76ItFFS7SmFfIdl6ej8/Uj0nPK/sIE21blKBe3+L0KAJm0TTq3m0ig1suCmMipCsSW+srWYM0hl58+OKagM4FoHKDjsEnzRDv9Z4xtxyvG+7/XLD1dE= - skip_cleanup: true - file_glob: true - file: - - '$TRAVIS_BUILD_DIR/build/linux/arduino-*.tar.xz' -# - '$TRAVIS_BUILD_DIR/Arduino.AppImage' - on: - tags: true - all_branches: true + - /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 + - export PATH="$PWD/build/linux/work:$PATH" + - which arduino + - source hardware/esp8266com/esp8266/tests/common.sh + - arduino --board esp8266com:esp8266:generic --save-prefs + - build_sketches arduino $PWD/hardware/esp8266com/esp8266 notifications: email: on_success: change on_failure: change + webhooks: + urls: + - secure: "dnSY+KA7NK+KD+Z71copmANDUsyVePrZ0iXvXxmqMEQv+lp3j2Z87G5pHn7j0WNcNZrejJqOdbElJ9Q4QESRaAYxTR7cA6ameJeEKHiFJrQtN/4abvoXb9E1CxpL8aNON/xgnqCk+fycOK3nbWWXlJBodzBm7KN64vrcHO7et+M=" + on_success: change # options: [always|never|change] default: always + on_failure: always # options: [always|never|change] default: always + on_start: false # default: false diff --git a/libraries/ESP8266SSDP/examples/SSDP/SSDP.ino b/libraries/ESP8266SSDP/examples/SSDP/SSDP.ino index a1f55a848..6b34e6cfe 100644 --- a/libraries/ESP8266SSDP/examples/SSDP/SSDP.ino +++ b/libraries/ESP8266SSDP/examples/SSDP/SSDP.ino @@ -1,5 +1,4 @@ #include -#include #include #include @@ -12,11 +11,11 @@ void setup() { Serial.begin(115200); Serial.println(); Serial.println("Starting WiFi..."); - + WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); if(WiFi.waitForConnectResult() == WL_CONNECTED){ - + Serial.printf("Starting HTTP...\n"); HTTP.on("/index.html", HTTP_GET, [](){ HTTP.send(200, "text/plain", "Hello World!"); @@ -25,7 +24,7 @@ void setup() { SSDP.schema(HTTP.client()); }); HTTP.begin(); - + Serial.printf("Starting SSDP...\n"); SSDP.setSchemaURL("description.xml"); SSDP.setHTTPPort(80); @@ -38,7 +37,7 @@ void setup() { SSDP.setManufacturer("Royal Philips Electronics"); SSDP.setManufacturerURL("http://www.philips.com"); SSDP.begin(); - + Serial.printf("Ready!\n"); } else { Serial.printf("WiFi Failed\n"); diff --git a/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino b/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino index 88a2093a5..c62cadfd6 100644 --- a/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino +++ b/libraries/ESP8266WebServer/examples/SDWebServer/SDWebServer.ino @@ -1,9 +1,9 @@ -/* +/* SDWebServer - Example WebServer with SD Card backend for esp8266 Copyright (c) 2015 Hristo Gochkov. All rights reserved. This file is part of the ESP8266WebServer library for Arduino environment. - + This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either @@ -23,7 +23,7 @@ File extensions with more than 3 charecters are not supported by the SD Library File Names longer than 8 charecters will be truncated by the SD library, so keep filenames shorter index.htm is the default index (works on subfolders as well) - + upload the contents of SdRoot to the root of the SDcard and access the editor by going to http://esp8266sd.local/edit */ @@ -38,9 +38,8 @@ const char* ssid = "**********"; const char* password = "**********"; -const char* hostname = "esp8266sd"; +const char* host = "esp8266sd"; -MDNSResponder mdns; ESP8266WebServer server(80); static bool hasSD = false; @@ -62,7 +61,7 @@ void returnFail(String msg) { bool loadFromSdCard(String path){ String dataType = "text/plain"; if(path.endsWith("/")) path += "index.htm"; - + if(path.endsWith(".src")) path = path.substring(0, path.lastIndexOf(".")); else if(path.endsWith(".htm")) dataType = "text/html"; else if(path.endsWith(".css")) dataType = "text/css"; @@ -74,7 +73,7 @@ bool loadFromSdCard(String path){ else if(path.endsWith(".xml")) dataType = "text/xml"; else if(path.endsWith(".pdf")) dataType = "application/pdf"; else if(path.endsWith(".zip")) dataType = "application/zip"; - + File dataFile = SD.open(path.c_str()); if(dataFile.isDirectory()){ path += "/index.htm"; @@ -84,9 +83,9 @@ bool loadFromSdCard(String path){ if (!dataFile) return false; - + if (server.hasArg("download")) dataType = "application/octet-stream"; - + if (server.streamFile(dataFile, dataType) != dataFile.size()) { DBG_OUTPUT_PORT.println("Sent less data than expected!"); } @@ -152,7 +151,7 @@ void handleDelete(){ void handleCreate(){ if(server.args() == 0) return returnFail("BAD ARGS"); String path = server.arg(0); - if(path == "/" || SD.exists((char *)path.c_str())) { + if(path == "/" || SD.exists((char *)path.c_str())) { returnFail("BAD PATH"); return; } @@ -183,7 +182,7 @@ void printDirectory() { server.setContentLength(CONTENT_LENGTH_UNKNOWN); server.send(200, "text/json", ""); WiFiClient client = server.client(); - + server.sendContent("["); for (int cnt = 0; true; ++cnt) { File entry = dir.openNextFile(); @@ -244,25 +243,26 @@ void setup(void){ } DBG_OUTPUT_PORT.print("Connected! IP address: "); DBG_OUTPUT_PORT.println(WiFi.localIP()); - - if (mdns.begin(hostname, WiFi.localIP())) { + + if (MDNS.begin(host)) { + MDNS.addService("http", "tcp", 80); DBG_OUTPUT_PORT.println("MDNS responder started"); DBG_OUTPUT_PORT.print("You can now connect to http://"); - DBG_OUTPUT_PORT.print(hostname); + DBG_OUTPUT_PORT.print(host); DBG_OUTPUT_PORT.println(".local"); } - - + + server.on("/list", HTTP_GET, printDirectory); server.on("/edit", HTTP_DELETE, handleDelete); server.on("/edit", HTTP_PUT, handleCreate); server.on("/edit", HTTP_POST, [](){ returnOK(); }); server.onNotFound(handleNotFound); server.onFileUpload(handleFileUpload); - + server.begin(); DBG_OUTPUT_PORT.println("HTTP server started"); - + if (SD.begin(SS)){ DBG_OUTPUT_PORT.println("SD Card initialized."); hasSD = true; diff --git a/libraries/ESP8266mDNS/README.md b/libraries/ESP8266mDNS/README.md index f438ae8d6..728c5bc78 100644 --- a/libraries/ESP8266mDNS/README.md +++ b/libraries/ESP8266mDNS/README.md @@ -19,12 +19,12 @@ Usage ----- 1. Download this repository as a zip (button on the right) and follow [these instructions to install into Arduino](http://arduino.cc/en/Guide/Libraries). 2. Include the ESP8266mDNS library in the sketch. -3. Create an instance of the MDNSResponder class. -4. Call the begin method in the sketch's setup and provide a domain name (without - the '.local' suffix, i.e. just provide 'foo' to resolve 'foo.local'), and the - IP address to advertise. Optionally provide a time to live (in seconds) - for the DNS record--the default is 1 hour. -5. Call the update method in each iteration of the sketch's loop function. +3. Call MDNS.begin method in the sketch's setup and provide a domain name (without + the '.local' suffix, i.e. just provide 'foo' to resolve 'foo.local'). Optionally provide + the IP address to advertise and time to live (in seconds) for the DNS record -- the default is 1 hour. +4. To advertise DNS-SD services, call MDNS.addService(service, proto, port), where service and proto + are strings with service and protocol name (e.g. "http", "tcp"), and port is an integer port number + for this service (e.g. 80). See the included MDNS + HTTP server sketch for a full example. @@ -49,4 +49,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file +THE SOFTWARE. diff --git a/libraries/ESP8266mDNS/examples/DNS_SD_Arduino_OTA/DNS_SD_Arduino_OTA.ino b/libraries/ESP8266mDNS/examples/DNS_SD_Arduino_OTA/DNS_SD_Arduino_OTA.ino index 31c30f2eb..0689a8531 100644 --- a/libraries/ESP8266mDNS/examples/DNS_SD_Arduino_OTA/DNS_SD_Arduino_OTA.ino +++ b/libraries/ESP8266mDNS/examples/DNS_SD_Arduino_OTA/DNS_SD_Arduino_OTA.ino @@ -1,12 +1,12 @@ #include #include -#include - +#include + const char* host = "esp8266-ota"; const char* ssid = "**********"; const char* pass = "**********"; const uint16_t aport = 8266; - + WiFiServer TelnetServer(aport); WiFiClient Telnet; WiFiUDP OTA; @@ -15,10 +15,10 @@ void setup() { Serial.begin(115200); Serial.println(""); Serial.println("Arduino OTA Test"); - + Serial.printf("Sketch size: %u\n", ESP.getSketchSize()); Serial.printf("Free size: %u\n", ESP.getFreeSketchSpace()); - + WiFi.begin(ssid, pass); if(WiFi.waitForConnectResult() == WL_CONNECTED){ MDNS.begin(host); @@ -43,24 +43,24 @@ void loop() { Serial.print(remote); Serial.printf(", port:%d, size:%d\n", port, size); uint32_t startTime = millis(); - + WiFiUDP::stopAll(); - + if(!Update.begin(size)){ Serial.println("Update Begin Error"); return; } - + WiFiClient client; if (client.connect(remote, port)) { - + uint32_t written; while(!Update.isFinished()){ written = Update.write(client); if(written > 0) client.print(written, DEC); } Serial.setDebugOutput(false); - + if(Update.end()){ client.println("OK"); Serial.printf("Update Success: %u\nRebooting...\n", millis() - startTime); diff --git a/libraries/Hash/examples/sha1.ino b/libraries/Hash/examples/sha1/sha1.ino similarity index 94% rename from libraries/Hash/examples/sha1.ino rename to libraries/Hash/examples/sha1/sha1.ino index 75cb8443d..6b4eb52a2 100644 --- a/libraries/Hash/examples/sha1.ino +++ b/libraries/Hash/examples/sha1/sha1.ino @@ -1,32 +1,32 @@ -/** - * simple demo to show sha1 calculation - */ -#include -#include - -void setup() { - Serial.begin(921600); -} - -void loop() { - - // usage as String - // SHA1:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 - - Serial.print("SHA1:"); - Serial.println(sha1("abc")); - - // usage as ptr - // SHA1:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 - uint8_t hash[20]; - sha1("abc", &hash[0]); - - Serial.print("SHA1:"); - for(uint16_t i = 0; i < 20; i++) { - Serial.printf("%02x", hash[i]); - } - Serial.println(); - - delay(1000); -} - +/** + * simple demo to show sha1 calculation + */ +#include +#include + +void setup() { + Serial.begin(921600); +} + +void loop() { + + // usage as String + // SHA1:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 + + Serial.print("SHA1:"); + Serial.println(sha1("abc")); + + // usage as ptr + // SHA1:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 + uint8_t hash[20]; + sha1("abc", &hash[0]); + + Serial.print("SHA1:"); + for(uint16_t i = 0; i < 20; i++) { + Serial.printf("%02x", hash[i]); + } + Serial.println(); + + delay(1000); +} + diff --git a/libraries/TFT_Touch_Shield_V2/examples/paint/.test.skip b/libraries/TFT_Touch_Shield_V2/examples/paint/.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/TFT_Touch_Shield_V2/examples/tftbmp/.test.skip b/libraries/TFT_Touch_Shield_V2/examples/tftbmp/.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/libraries/TFT_Touch_Shield_V2/examples/tftbmp2/.test.skip b/libraries/TFT_Touch_Shield_V2/examples/tftbmp2/.test.skip new file mode 100644 index 000000000..e69de29bb diff --git a/tests/common.sh b/tests/common.sh new file mode 100755 index 000000000..fab1a90f3 --- /dev/null +++ b/tests/common.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +function build_sketches() +{ + local arduino=$1 + local srcpath=$2 + local sketches=$(find $srcpath -name *.ino) + for sketch in $sketches; do + local sketchdir=$(dirname $sketch) + if [[ -f "$sketchdir/.test.skip" ]]; then + echo -e "\n\n ------------ Skipping $sketch ------------ \n\n"; + continue + fi + echo -e "\n\n ------------ Building $sketch ------------ \n\n"; + $arduino --verify --verbose $sketch; + local result=$? + if [ $result -ne 0 ]; then + echo "Build failed ($1)" + return $result + fi + done +}