diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85d6685..808dd17 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,22 +1,22 @@ name: Arduino Library CI -on: +on: push: paths-ignore: - - '**/**.md' - - '/keywords.txt' - - '/library.json' - - '/library.properties' - - '/ui' - - '/docs' + - "**/**.md" + - "/keywords.txt" + - "/library.json" + - "/library.properties" + - "/ui" + - "/docs" pull_request: paths-ignore: - - '**/**.md' - - '/keywords.txt' - - '/library.json' - - '/library.properties' - - '/ui' - - '/docs' + - "**/**.md" + - "/keywords.txt" + - "/library.json" + - "/library.properties" + - "/ui" + - "/docs" jobs: Async_CI: @@ -24,24 +24,30 @@ jobs: steps: - uses: actions/setup-python@v1 with: - python-version: '3.x' - + python-version: "3.x" + - uses: actions/checkout@v2 - uses: actions/checkout@v2 with: - repository: ayushsharma82/ci-arduino - path: ci + repository: ayushsharma82/ci-arduino + path: ci - name: pre-install run: bash ci/actions_install.sh - name: Set configuration - run: arduino-cli config set library.enable_unsafe_install true + run: arduino-cli config set library.enable_unsafe_install true + + - name: Install AsyncTCP + run: arduino-cli lib install --git-url https://github.com/mathieucarbou/AsyncTCP#v3.1.2 + + - name: Install ESPAsyncWebServer + run: arduino-cli lib install --git-url https://github.com/mathieucarbou/ESPAsyncWebServer#v2.9.4 + + - name: Install ESPAsyncTCP + run: arduino-cli lib install --git-url https://github.com/mathieucarbou/esphome-ESPAsyncTCP#v2.0.0 - - name: Install test dependencies - run: arduino-cli lib install --git-url https://github.com/me-no-dev/ESPAsyncWebServer --git-url https://github.com/me-no-dev/ESPAsyncTCP --git-url https://github.com/me-no-dev/AsyncTCP - - name: Skip SyncDemo Example run: | cd examples @@ -53,7 +59,7 @@ jobs: run: | cd src sed -i 's/ELEGANTOTA_USE_ASYNC_WEBSERVER 0/ELEGANTOTA_USE_ASYNC_WEBSERVER 1/' ElegantOTA.h - + - name: Test Async Demo run: python3 ci/build_platform.py esp8266 esp32 @@ -62,14 +68,14 @@ jobs: steps: - uses: actions/setup-python@v1 with: - python-version: '3.x' - + python-version: "3.x" + - uses: actions/checkout@v2 - uses: actions/checkout@v2 with: - repository: adafruit/ci-arduino - path: ci + repository: adafruit/ci-arduino + path: ci - name: pre-install run: bash ci/actions_install.sh @@ -83,3 +89,71 @@ jobs: - name: Test Sync Demo run: python3 ci/build_platform.py esp8266 esp32 picow_rp2040 + + platformio: + name: pio ${{ matrix.name }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - name: esp32dev|espressif32 + board: esp32dev + platform: espressif32 + opts: + - name: esp32dev|espressif32@6.6.0 + board: esp32dev + platform: espressif32@6.6.0 + opts: + - name: esp32dev|arduino@3.0.0-rc1 + board: esp32dev + platform: espressif32 + opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0-rc1, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1'" + - name: esp32dev|arduino@master + board: esp32dev + platform: espressif32 + opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#master, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1'" + - name: esp32-s3-devkitc-1|espressif32 + board: esp32-s3-devkitc-1 + platform: espressif32 + opts: + - name: esp32-s3-devkitc-1|espressif32@6.6.0 + board: esp32-s3-devkitc-1 + platform: espressif32@6.6.0 + opts: + - name: esp32-s3-devkitc-1|arduino@3.0.0-rc1 + board: esp32-s3-devkitc-1 + platform: espressif32 + opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0-rc1, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1'" + - name: esp32-s3-devkitc-1|arduino@master + board: esp32-s3-devkitc-1 + platform: espressif32 + opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#master, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1'" + - name: huzzah|espressif8266 + board: huzzah + platform: espressif8266 + opts: + - name: huzzah|arduino@3.0.0-rc1 + board: huzzah + platform: espressif8266 + opts: "--project-option 'platform_packages=platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0-rc1, platform_packages=platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1'" + steps: + - uses: actions/checkout@v4 + - name: Set up cache + uses: actions/cache@v4 + with: + path: | + ~/.platformio + ~/.cache/pip + key: ${{ matrix.name }} + - uses: actions/setup-python@v5 + with: + python-version: "3.x" + - run: pip install platformio + - run: platformio platform install ${{ matrix.platform }} + + - name: Build Sync Demo + run: platformio ci "examples/Demo/Demo.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} + + - name: Build Async Demo + run: PLATFORMIO_BUILD_FLAGS="-DELEGANTOTA_USE_ASYNC_WEBSERVER=1" platformio ci "examples/AsyncDemo/AsyncDemo.ino" -l '.' -b ${{ matrix.board }} ${{ matrix.opts }} diff --git a/.gitignore b/.gitignore index 78a7633..e1a65ae 100644 --- a/.gitignore +++ b/.gitignore @@ -36,4 +36,5 @@ node_modules .DS_Store .vscode /build -/portal \ No newline at end of file +/portal +.pio diff --git a/library.json b/library.json index b685a6d..2af189f 100644 --- a/library.json +++ b/library.json @@ -15,6 +15,14 @@ "maintainer": true } ], + "dependencies": [ + { + "owner": "mathieucarbou", + "name": "ESP Async WebServer", + "version": "^2.9.4", + "platforms": ["espressif8266", "espressif32"] + } + ], "version": "3.1.1", "frameworks": "arduino", "platforms": ["espressif8266", "espressif32", "raspberrypi"] diff --git a/platformio.ini b/platformio.ini new file mode 100644 index 0000000..0932346 --- /dev/null +++ b/platformio.ini @@ -0,0 +1,47 @@ +[env] +framework = arduino +build_flags = + -Wall -Wextra + -D CONFIG_ARDUHAL_LOG_COLORS + -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG + -D ELEGANTOTA_USE_ASYNC_WEBSERVER=1 +lib_deps = + mathieucarbou/Async TCP @ ^3.1.2 + mathieucarbou/ESP Async WebServer @ 2.9.4 +upload_protocol = esptool +monitor_speed = 115200 +monitor_filters = esp32_exception_decoder, log2file + +[platformio] +lib_dir = . +# src_dir = examples/Demo +src_dir = examples/AsyncDemo + +[env:v660] +platform = espressif32@6.6.0 +board = esp32dev + +[env:latest-espressif32] +platform = https://github.com/platformio/platform-espressif32.git +board = esp32dev + +[env:latest-arduino] +platform = espressif32 +platform_packages= + platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#master + platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1 +board = esp32dev + +[env:v300-rc1] +platform = espressif32 +platform_packages= + platformio/framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32.git#3.0.0-rc1 + platformio/framework-arduinoespressif32-libs @ https://github.com/espressif/esp32-arduino-libs.git#idf-release/v5.1 +board = esp32dev + +[env:esp8266] +platform = espressif8266 +board = huzzah +lib_deps = + mathieucarbou/ESP Async WebServer @ 2.9.4 + esphome/ESPAsyncTCP-esphome @ 2.0.0