Browse Source

fix: update ci

Ayush Sharma 1 week ago
parent
commit
29f6b26c04
2 changed files with 165 additions and 99 deletions
  1. 92 64
      .github/workflows/ci.yml
  2. 73 35
      platformio.ini

+ 92 - 64
.github/workflows/ci.yml

@@ -4,43 +4,55 @@ on:
   push:
     paths-ignore:
       - "**/**.md"
-      - "/keywords.txt"
-      - "/library.json"
-      - "/library.properties"
-      - "/docs"
+      - "LICENSE"
+      - "keywords.txt"
+      - "library.json"
+      - "library.properties"
+      - "portal"
+      - "docs/*"
   pull_request:
     paths-ignore:
       - "**/**.md"
-      - "/keywords.txt"
-      - "/library.json"
-      - "/library.properties"
-      - "/docs"
-
-concurrency:
-  group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
-  cancel-in-progress: true
-       
+      - "LICENSE"
+      - "keywords.txt"
+      - "library.json"
+      - "library.properties"
+      - "portal"
+      - "docs/*"
+
 jobs:
   arduino:
-    name: arduino ${{ matrix.name }}
+    name: Arduino - ${{ matrix.name }}
     runs-on: ubuntu-latest
     strategy:
       fail-fast: false
       matrix:
         include:
-          - name: package_esp32_index.json
+          - name: ESP8266
+            core: esp8266:esp8266
+            board: esp8266:esp8266:huzzah
+            index_url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
+          
+          - name: ESP32
             core: esp32:esp32
             board: esp32:esp32:esp32
             index_url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
-          - name: package_esp32_dev_index.json
+          
+          - name: ESP32 (Dev Branch)
             core: esp32:esp32
             board: esp32:esp32:esp32
             index_url: https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
-          - name: package_esp8266com_index.json
-            core: esp8266:esp8266
-            board: esp8266:esp8266:huzzah
-            index_url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
-
+          
+          - name: Pico W | RP2040+W
+            core: rp2040:rp2040
+            board: rp2040:rp2040:rpipicow
+            index_url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
+          
+          - name: Pico 2W | RP2350+W
+            core: rp2040:rp2040
+            board: rp2040:rp2040:rpipico2w
+            index_url: https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
+    
     steps:
       - name: Checkout
         uses: actions/checkout@v4
@@ -59,14 +71,20 @@ jobs:
       - name: Install core
         run: arduino-cli core install --additional-urls "${{ matrix.index_url }}" ${{ matrix.core }}
 
-      - name: Install AsyncTCP
-        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/mathieucarbou/AsyncTCP#v3.2.6
+      - name: Install AsyncTCP (ESP32)
+        if: ${{ matrix.core == 'esp32:esp32' }}
+        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/ESP32Async/AsyncTCP#v3.3.7
 
-      - name: Install ESPAsyncTCP
-        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/mathieucarbou/esphome-ESPAsyncTCP#v2.0.0
+      - name: Install ESPAsyncTCP (ESP8266)
+        if: ${{ matrix.core == 'esp8266:esp8266' }}
+        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/ESP32Async/ESPAsyncTCP#v2.0.0
+
+      - name: Install RPAsyncTCP (RP2040)
+        if: ${{ matrix.core == 'rp2040:rp2040' }}
+        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/ayushsharma82/RPAsyncTCP#v1.3.2
 
       - name: Install ESPAsyncWebServer
-        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/mathieucarbou/ESPAsyncWebServer#v3.3.17
+        run: ARDUINO_LIBRARY_ENABLE_UNSAFE_INSTALL=true arduino-cli lib install --git-url https://github.com/ESP32Async/ESPAsyncWebServer#v3.7.3
 
       - name: Build Demo
         run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Demo/Demo.ino"
@@ -74,70 +92,80 @@ jobs:
       - name: Build Demo_AP
         run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Demo_AP/Demo_AP.ino"
 
-      - name: Build Logging
-        run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Logging/Logging.ino"
-
       - name: Build HighPerf
         run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/HighPerf/HighPerf.ino"
 
+      - name: Build Logging
+        run: arduino-cli compile --library . --warnings none -b ${{ matrix.board }} "examples/Logging/Logging.ino"
+
   platformio:
-    name: "pio:${{ matrix.env }}:${{ matrix.board }}"
+    name: PlatformIO - ${{ matrix.name }}
     runs-on: ubuntu-latest
     strategy:
       fail-fast: false
       matrix:
         include:
-          - env: ci-arduino-2
-            board: esp32dev
-          - env: ci-arduino-2
-            board: esp32-s3-devkitc-1
+          - name: ESP8266 (Huzzah)
+            env: ci-esp8266
+            board: huzzah
+          
+          - name: ESP8266 (D1 Mini)
+            env: ci-esp8266
+            board: d1_mini
 
-          - env: ci-arduino-3
+          - name: ESP32 (Arduino Core v2)
+            env: ci-esp32-arduino-2
             board: esp32dev
-          - env: ci-arduino-3
-            board: esp32-s3-devkitc-1
-          - env: ci-arduino-3
-            board: esp32-c6-devkitc-1
 
-          - env: ci-arduino-310rc1
+          - name: ESP32
+            env: ci-esp32
             board: esp32dev
-          - env: ci-arduino-310rc1
+          
+          - name: ESP32-S2
+            env: ci-esp32
+            board: esp32-s2-saola-1
+          
+          - name: ESP32-S3
+            env: ci-esp32
             board: esp32-s3-devkitc-1
-          - env: ci-arduino-310rc1
+          
+          - name: ESP32-C3
+            env: ci-esp32
+            board: esp32-c3-devkitc-02
+          
+          - name: ESP32-C6
+            env: ci-esp32
             board: esp32-c6-devkitc-1
-
-          - env: ci-esp8266
-            board: huzzah
-          - env: ci-esp8266
-            board: d1_mini
+          
+          - name: Pico W | RP2040+W
+            env: ci-rp2040
+            board: rpipicow
+
+          - name: Pico 2W | RP2350+W
+            env: ci-rp2350
+            board: rpipico2w
     steps:
-      - name: Checkout
-        uses: actions/checkout@v4
+      - uses: actions/checkout@v4
 
-      - name: Cache PlatformIO
+      - name: Set up cache
         uses: actions/cache@v4
         with:
           key: ${{ runner.os }}-pio
           path: |
-            ~/.cache/pip
             ~/.platformio
-
-      - name: Python
+            ~/.cache/pip
+      
+      - name: Setup Python
         uses: actions/setup-python@v5
         with:
           python-version: "3.x"
 
-      - name: Build
+      - name: Setup PlatformIO
         run: |
           python -m pip install --upgrade pip
           pip install --upgrade platformio
-
-      - run: PLATFORMIO_SRC_DIR="examples/Demo" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-      - run: PLATFORMIO_SRC_DIR="examples/Demo_AP" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-      - run: PLATFORMIO_SRC_DIR="examples/Logging" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-      - run: PLATFORMIO_SRC_DIR="examples/HighPerf" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-
-      - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" PLATFORMIO_SRC_DIR="examples/Demo" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-      - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" PLATFORMIO_SRC_DIR="examples/Demo_AP" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-      - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" PLATFORMIO_SRC_DIR="examples/Logging" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
-      - run: PLATFORMIO_BUILD_FLAGS="-DWSL_HIGH_PERF" PLATFORMIO_SRC_DIR="examples/HighPerf" PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
+      
+      - run: PLATFORMIO_SRC_DIR=examples/Demo PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
+      - run: PLATFORMIO_SRC_DIR=examples/Demo_AP PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
+      - run: PLATFORMIO_SRC_DIR=examples/HighPerf PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}
+      - run: PLATFORMIO_SRC_DIR=examples/Logging PIO_BOARD=${{ matrix.board }} pio run -e ${{ matrix.env }}

+ 73 - 35
platformio.ini

@@ -4,59 +4,97 @@ build_flags =
   -Wall -Wextra
   -D CONFIG_ARDUHAL_LOG_COLORS
   -D CORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
-  -D CONFIG_ASYNC_TCP_QUEUE_SIZE=128
-  -D CONFIG_ASYNC_TCP_RUNNING_CORE=1
-  -D WS_MAX_QUEUED_MESSAGES=128
-  -D WSL_HIGH_PERF
-lib_deps = 
-  mathieucarbou/ESPAsyncWebServer@^3.3.11
-lib_compat_mode = strict
-lib_ldf_mode = chain
+lib_deps = 
+  esp32async/ESPAsyncWebServer@^3.7.3
 upload_protocol = esptool
 monitor_speed = 115200
 monitor_filters = esp32_exception_decoder, log2file
 
 [platformio]
-default_envs = arduino-2, arduino-3, arduino-310rc1, esp8266
 lib_dir = .
-; src_dir = examples/Demo
+src_dir = examples/Demo
 ; src_dir = examples/Demo_AP
-src_dir = examples/HighPerf
-; src_dir = examples/Logging
-
-[env:arduino-2]
-platform = espressif32@6.8.1
-board = esp32-s3-devkitc-1
 
-[env:arduino-3]
-platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.04/platform-espressif32.zip
+[env:esp32]
+build_flags = ${env.build_flags}
+platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13/platform-espressif32.zip
 board = esp32-s3-devkitc-1
-; board = esp32-c6-devkitc-1
-
-[env:arduino-310rc1]
-platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10%%2Brc1/platform-espressif32.zip
-board = esp32-s3-devkitc-1
-; board = esp32-c6-devkitc-1
+lib_deps = 
+  esp32async/AsyncTCP@^3.3.7
+  ${env.lib_deps}
 
 [env:esp8266]
 platform = espressif8266
 board = huzzah
-; board = d1_mini
+lib_deps = 
+  esp32async/ESPAsyncTCP@^2.0.0
+  ${env.lib_deps}
 
-; CI
+[env:picow]
+platform = https://github.com/maxgerhardt/platform-raspberrypi.git
+board = rpipicow
+framework = arduino
+board_build.core = earlephilhower
+lib_deps = 
+  ayushsharma82/RPAsyncTCP@^1.3.2
+  ${env.lib_deps}
+lib_ignore = 
+  lwIP_ESPHost
 
-[env:ci-arduino-2]
-platform = espressif32@6.8.1
-board = ${sysenv.PIO_BOARD}
+[env:pico2w]
+platform = https://github.com/maxgerhardt/platform-raspberrypi.git
+board = rpipico2w
+framework = arduino
+board_build.core = earlephilhower
+lib_deps = 
+  ayushsharma82/RPAsyncTCP@^1.3.2
+  ${env.lib_deps}
+lib_ignore = 
+  lwIP_ESPHost
+
+;  ------------
+;  CI Workflows
+;  ------------
 
-[env:ci-arduino-3]
-platform = https://github.com/pioarduino/platform-espressif32/releases/download/51.03.04/platform-espressif32.zip
+[env:ci-esp8266]
+platform = espressif8266
 board = ${sysenv.PIO_BOARD}
+lib_deps = 
+  esp32async/ESPAsyncTCP@^2.0.0
+  ${env.lib_deps}
 
-[env:ci-arduino-310rc1]
-platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.10%%2Brc1/platform-espressif32.zip
+[env:ci-esp32-arduino-2]
+platform = espressif32@6.7.0
 board = ${sysenv.PIO_BOARD}
+lib_deps = 
+  esp32async/AsyncTCP@^3.3.7
+  ${env.lib_deps}
 
-[env:ci-esp8266]
-platform = espressif8266
+[env:ci-esp32]
+platform = https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13/platform-espressif32.zip
 board = ${sysenv.PIO_BOARD}
+lib_deps = 
+  esp32async/AsyncTCP@^3.3.7
+  ${env.lib_deps}
+
+[env:ci-rp2040]
+platform = https://github.com/maxgerhardt/platform-raspberrypi.git
+board = rpipicow
+framework = arduino
+board_build.core = earlephilhower
+lib_deps = 
+  ayushsharma82/RPAsyncTCP@^1.3.2
+  ${env.lib_deps}
+lib_ignore = 
+  lwIP_ESPHost
+
+[env:ci-rp2350]
+platform = https://github.com/maxgerhardt/platform-raspberrypi.git
+board = rpipico2w
+framework = arduino
+board_build.core = earlephilhower
+lib_deps = 
+  ayushsharma82/RPAsyncTCP@^1.3.2
+  ${env.lib_deps}
+lib_ignore = 
+  lwIP_ESPHost