diff --git a/.github/workflows/compile_examples.yaml b/.github/workflows/compile_examples.yaml new file mode 100644 index 0000000..8488713 --- /dev/null +++ b/.github/workflows/compile_examples.yaml @@ -0,0 +1,122 @@ +name: Compile examples + +on: + push: + paths-ignore: + - '.github/workflows/cpp_lint.yml' + - '.github/workflows/compile_library.yml' + pull_request: + paths-ignore: + - '.github/workflows/cpp_lint.yml' + - '.github/workflows/compile_library.yml' + +jobs: + esp8266: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + example: + - "examples/AutoConnect/AutoConnectWithFSParametersAndCustomIP/AutoConnectWithFSParametersAndCustomIP.ino" + - "examples/AutoConnect/AutoConnect.ino" + - "examples/AutoConnect/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino" + - "examples/AutoConnect/AutoConnectWithFeedbackLED/AutoConnectWithFeedbackLED.ino" + - "examples/NonBlocking/OnDemandNonBlocking/onDemandNonBlocking.ino" + - "examples/NonBlocking/AutoConnectNonBlockingwParams/AutoConnectNonBlockingwParams.ino" + - "examples/NonBlocking/AutoConnectNonBlocking/AutoConnectNonBlocking.ino" + - "examples/Basic/Basic.ino" + - "examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino" + - "examples/Advanced/Advanced.ino" + - "examples/Old_examples/AutoConnectWithStaticIP/AutoConnectWithStaticIP.ino" + - "examples/Old_examples/AutoConnectWithFeedback/AutoConnectWithFeedback.ino" + - "examples/Old_examples/AutoConnectWithReset/AutoConnectWithReset.ino" + - "examples/Old_examples/AutoConnectWithTimeout/AutoConnectWithTimeout.ino" + - "examples/ParamsChildClass/ParamsChildClass.ino" + - "examples/OnDemand/OnDemandConfigPortal/OnDemandConfigPortal.ino" + - "examples/OnDemand/OnDemandWebPortal/onDemandWebPortal.ino" + + steps: + - uses: actions/checkout@v2 + - name: Cache pip + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: ${{ runner.os }}-pip- + - name: Cache PlatformIO + uses: actions/cache@v2 + with: + path: ~/.platformio + key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} + - name: Set up Python + uses: actions/setup-python@v2 + - name: Install PlatformIO + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + - name: Install 3rd party dependecies + run: | + pio lib -g install \ + https://github.com/tzapu/WiFiManager \ + https://github.com/bblanchon/ArduinoJson#v5.13.5 \ + https://github.com/knolleary/pubsubclient + + - name: Run PlatformIO Examples + run: pio ci --board=esp32dev + env: + PLATFORMIO_CI_SRC: ${{ matrix.example }} + + esp32: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + example: + - "examples/AutoConnect/AutoConnectWithFSParametersAndCustomIP/AutoConnectWithFSParametersAndCustomIP.ino" + - "examples/AutoConnect/AutoConnect.ino" + - "examples/AutoConnect/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino" + - "examples/AutoConnect/AutoConnectWithFeedbackLED/AutoConnectWithFeedbackLED.ino" + - "examples/NonBlocking/OnDemandNonBlocking/onDemandNonBlocking.ino" + - "examples/NonBlocking/AutoConnectNonBlockingwParams/AutoConnectNonBlockingwParams.ino" + - "examples/NonBlocking/AutoConnectNonBlocking/AutoConnectNonBlocking.ino" + - "examples/Basic/Basic.ino" + - "examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino" + - "examples/Advanced/Advanced.ino" + - "examples/Old_examples/AutoConnectWithStaticIP/AutoConnectWithStaticIP.ino" + - "examples/Old_examples/AutoConnectWithFeedback/AutoConnectWithFeedback.ino" + - "examples/Old_examples/AutoConnectWithReset/AutoConnectWithReset.ino" + - "examples/Old_examples/AutoConnectWithTimeout/AutoConnectWithTimeout.ino" + - "examples/ParamsChildClass/ParamsChildClass.ino" + - "examples/OnDemand/OnDemandConfigPortal/OnDemandConfigPortal.ino" + - "examples/OnDemand/OnDemandWebPortal/onDemandWebPortal.ino" + + steps: + - uses: actions/checkout@v2 + - name: Cache pip + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: ${{ runner.os }}-pip- + - name: Cache PlatformIO + uses: actions/cache@v2 + with: + path: ~/.platformio + key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} + - name: Set up Python + uses: actions/setup-python@v2 + - name: Install PlatformIO + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + - name: Install 3rd party dependecies + run: | + pio lib -g install \ + https://github.com/tzapu/WiFiManager \ + https://github.com/bblanchon/ArduinoJson#v5.13.5 \ + https://github.com/knolleary/pubsubclient + + - name: Run PlatformIO Examples + run: pio ci --board=nodemcuv2 + env: + PLATFORMIO_CI_SRC: ${{ matrix.example }} \ No newline at end of file diff --git a/.github/workflows/compile_library.yml b/.github/workflows/compile_library.yml new file mode 100644 index 0000000..5660b92 --- /dev/null +++ b/.github/workflows/compile_library.yml @@ -0,0 +1,53 @@ +name: Compile Library + +on: + push: + paths-ignore: + - '.github/workflows/cpp_lint.yml' + - '.github/workflows/compile_examples.yml' + - 'examples/**' + pull_request: + paths-ignore: + - '.github/workflows/cpp_lint.yml' + - '.github/workflows/compile_examples.yml' + - 'examples/**' + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + board: + - "nodemcuv2" + - "lolin32" + + steps: + - uses: actions/checkout@v2 + - name: Cache pip + uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: ${{ runner.os }}-pip- + - name: Cache PlatformIO + uses: actions/cache@v2 + with: + path: ~/.platformio + key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} + - name: Set up Python + uses: actions/setup-python@v2 + - name: Install PlatformIO + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + + - name: Create main file + run: | + echo "#include " >> main.ino + echo "void setup() {}" >> main.ino + echo "void loop() {}" >> main.ino + + - name: Run PlatformIO + run: pio ci --board=${{ matrix.board }} . diff --git a/.github/workflows/cpp_lint.yml b/.github/workflows/cpp_lint.yml new file mode 100644 index 0000000..36814cf --- /dev/null +++ b/.github/workflows/cpp_lint.yml @@ -0,0 +1,30 @@ +name: cpplint + +on: + push: + paths-ignore: + - '.github/workflows/compile_*.yml' + pull_request: + paths-ignore: + - '.github/workflows/compile_*.yml' +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: cpplint + uses: reviewdog/action-cpplint@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + reporter: github-pr-check + flags: --linelength=100 + target: . + filter: "-whitespace/tab\ + ,-readability/braces\ + ,-whitespace/braces\ + ,-whitespace/comments\ + ,-whitespace/indent\ + ,-whitespace/newline\ + ,-whitespace/operators\ + ,-whitespace/parens\ + " diff --git a/.github/workflows/examples_esp8266.yml b/.github/workflows/examples_esp8266.yml deleted file mode 100644 index 6234cc6..0000000 --- a/.github/workflows/examples_esp8266.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Compile examples for ESP8266 - -on: [push] - -jobs: - build: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - example: - - "examples/AutoConnect/AutoConnectWithFSParametersAndCustomIP/AutoConnectWithFSParametersAndCustomIP.ino" - - "examples/AutoConnect/AutoConnect.ino" - - "examples/AutoConnect/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino" - - "examples/AutoConnect/AutoConnectWithFeedbackLED/AutoConnectWithFeedbackLED.ino" - - "examples/NonBlocking/OnDemandNonBlocking/onDemandNonBlocking.ino" - - "examples/NonBlocking/AutoConnectNonBlockingwParams/AutoConnectNonBlockingwParams.ino" - - "examples/NonBlocking/AutoConnectNonBlocking/AutoConnectNonBlocking.ino" - - "examples/Basic/Basic.ino" - - "examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino" - - "examples/Advanced/Advanced.ino" - - "examples/Old_examples/AutoConnectWithStaticIP/AutoConnectWithStaticIP.ino" - - "examples/Old_examples/AutoConnectWithFeedback/AutoConnectWithFeedback.ino" - - "examples/Old_examples/AutoConnectWithReset/AutoConnectWithReset.ino" - - "examples/Old_examples/AutoConnectWithTimeout/AutoConnectWithTimeout.ino" - - "examples/ParamsChildClass/ParamsChildClass.ino" - - "examples/OnDemand/OnDemandConfigPortal/OnDemandConfigPortal.ino" - - "examples/OnDemand/OnDemandWebPortal/onDemandWebPortal.ino" - - steps: - - uses: actions/checkout@v2 - - name: Cache pip - uses: actions/cache@v2 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: ${{ runner.os }}-pip- - - name: Cache PlatformIO - uses: actions/cache@v2 - with: - path: ~/.platformio - key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }} - - name: Set up Python - uses: actions/setup-python@v2 - - name: Install PlatformIO - run: | - python -m pip install --upgrade pip - pip install --upgrade platformio - - name: Install 3rd party dependecies - run: | - pio lib -g install \ - https://github.com/tzapu/WiFiManager \ - https://github.com/bblanchon/ArduinoJson \ - https://github.com/knolleary/pubsubclient - - - name: Run PlatformIO Examples - run: pio ci --board=nodemcuv2 - env: - PLATFORMIO_CI_SRC: ${{ matrix.example }}