@@ -235,7 +235,61 @@ jobs:
235235 run : |
236236 python3 .github/get_pytest_args.py --target=${{ matrix.runner.target }} -v 'build_info*.json' pytest-args.txt
237237 cat pytest-args.txt
238- pytest --suppress-no-test-exit-code $(cat pytest-args.txt) --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} --target=${{ matrix.runner.target }} -m ${{ matrix.runner.marker }} --build-dir=build_${{ matrix.runner.target }} ${{ matrix.runner.pytest_args }}
238+ pytest --suppress-no-test-exit-code $(cat pytest-args.txt) --ignore-glob '*/managed_components/*' --ignore=.github --ignore=esp_delta_ota/examples/https_delta_ota/pytest_https_delta_ota.py --junit-xml=${{ env.TEST_RESULT_FILE }} --target=${{ matrix.runner.target }} -m ${{ matrix.runner.marker }} --build-dir=build_${{ matrix.runner.target }} ${{ matrix.runner.pytest_args }}
239+ - name : Upload test results
240+ uses : actions/upload-artifact@v4
241+ if : always()
242+ with :
243+ name : ${{ env.TEST_RESULT_NAME }}
244+ path : ${{ env.TEST_RESULT_FILE }}
245+
246+ run-target-delta-ota :
247+ name : Run esp_delta_ota on ESP-IDF image
248+ if : github.repository_owner == 'espressif' && needs.prepare.outputs.build_only != '1'
249+ needs : [build]
250+ strategy :
251+ fail-fast : false
252+ matrix :
253+ idf_ver :
254+ - " release-v5.1"
255+ - " release-v5.2"
256+ - " release-v5.3"
257+ - " release-v5.4"
258+ - " release-v5.5"
259+ - " latest"
260+ runner :
261+ - runs-on : " ESP32-ETHERNET-KIT"
262+ marker : " ethernet"
263+ target : " esp32"
264+ runner-labels : [self-hosted, linux, docker, "ESP32-ETHERNET-KIT"]
265+ env :
266+ TEST_RESULT_NAME : test_results_delta_ota_${{ matrix.runner.target }}_${{ matrix.runner.marker }}_${{ matrix.idf_ver }}
267+ TEST_RESULT_FILE : test_results_delta_ota_${{ matrix.runner.target }}_${{ matrix.runner.marker }}_${{ matrix.idf_ver }}.xml
268+ runs-on : ${{ matrix.runner.runner-labels }}
269+ container :
270+ image : espressif/idf:${{ matrix.idf_ver }}
271+ options : --privileged # Privileged mode has access to serial ports
272+ steps :
273+ - uses : actions/checkout@v4
274+ - uses : actions/download-artifact@v4
275+ with :
276+ pattern : app_binaries_${{ matrix.idf_ver }}_*
277+ merge-multiple : true
278+ - name : Install dependencies
279+ shell : bash
280+ run : |
281+ export IDF_PYTHON_CHECK_CONSTRAINTS=yes
282+ ${IDF_PATH}/install.sh --enable-ci
283+ . ${IDF_PATH}/export.sh
284+ pip install --prefer-binary cryptography pytest-embedded pytest-embedded-serial-esp pytest-embedded-idf pytest-custom_exit_code
285+ - name : Run esp_delta_ota tests
286+ shell : bash
287+ run : |
288+ . ${IDF_PATH}/export.sh
289+ python3 .github/get_pytest_args.py --target=${{ matrix.runner.target }} -v 'build_info*.json' pytest-args.txt
290+ cat pytest-args.txt
291+ # Use build_esp*_base directory for flashing (base binary), test will find both base and new binaries for patch generation
292+ pytest --suppress-no-test-exit-code $(cat pytest-args.txt) esp_delta_ota/examples/https_delta_ota/pytest_https_delta_ota.py --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} --target=${{ matrix.runner.target }} -m ${{ matrix.runner.marker }} --build-dir=build_${{ matrix.runner.target }}_base
239293 - name : Upload test results
240294 uses : actions/upload-artifact@v4
241295 if : always()
@@ -308,6 +362,7 @@ jobs:
308362 name : Publish Test results
309363 needs :
310364 - run-target
365+ - run-target-delta-ota
311366 - run-target-linux
312367 if : github.repository_owner == 'espressif' && always() && github.event_name == 'pull_request' && needs.prepare.outputs.build_only == '0'
313368 runs-on : ubuntu-22.04
0 commit comments