esp-idf/.gitlab/ci/target-test.yml

1547 lines
41 KiB
YAML

.target_test_template:
image: $TARGET_TEST_ENV_IMAGE
extends:
- .before_script:fetch:target_test
stage: target_test
timeout: 1 hour
dependencies: []
cache:
# Usually do not need submodule-cache in target_test
- key: pip-cache
paths:
- .cache/pip
policy: pull
after_script:
- python tools/ci/artifacts_handler.py upload --type logs junit_reports
.pytest_template:
extends:
- .target_test_template
artifacts:
when: always
paths:
- XUNIT_RESULT.xml
- pytest_embedded_log/
reports:
junit: XUNIT_RESULT.xml
expire_in: 1 week
script:
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# using runner tags as markers to filter the test cases
# Runner tags are comma separated, replace the comma with " and " for markers
- job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
- markers=$(echo $job_tags | sed -e "s/,/ and /g")
- if [ -n "$BUILD_JOB_NAME" ]; then
job_name=$BUILD_JOB_NAME;
else
job_name=${BUILD_JOB_PREFIX}$(python tools/ci/ci_get_mr_info.py target_in_tags $job_tags);
fi
- run_cmd python tools/ci/artifacts_handler.py download --job-name "$job_name" --type build_dir_without_map_and_elf_files
- if [ -n "$REQUIRES_ELF_FILES" ]; then
run_cmd python tools/ci/artifacts_handler.py download --job-name "$job_name" --type map_and_elf_files;
fi
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
--app-info-filepattern \"list_job_*.txt\"
.pytest_examples_dir_template:
extends: .pytest_template
variables:
TEST_DIR: examples
BUILD_JOB_PREFIX: build_pytest_examples_
.pytest_examples_dir_jtag_template:
extends: .pytest_examples_dir_template
needs:
- job: build_pytest_examples_jtag
artifacts: false
variables:
BUILD_JOB_NAME: build_pytest_examples_jtag
REQUIRES_ELF_FILES: "1"
PYTEST_EXTRA_FLAGS: "--log-cli-level DEBUG"
pytest_examples_esp32_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, generic ]
parallel: 3
pytest_examples_esp32_esp32eco3:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, esp32eco3 ]
pytest_examples_esp32_ir_transceiver:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ir_transceiver ]
pytest_examples_esp32_twai_transceiver:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, twai_transceiver ]
pytest_examples_esp32_twai_network:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, twai_network ]
pytest_examples_esp32_jtag:
extends:
- .pytest_examples_dir_jtag_template
- .rules:test:example_test-esp32
tags: [ esp32, jtag ]
pytest_examples_esp32_ccs811:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ccs811 ]
pytest_examples_esp32_sdio:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-sdio
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, sdio_master_slave ]
pytest_examples_esp32s2_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s2
needs:
- job: build_pytest_examples_esp32s2
artifacts: false
tags: [ esp32s2, generic ]
parallel: 3
pytest_examples_esp32s2_jtag:
extends:
- .pytest_examples_dir_jtag_template
- .rules:test:example_test-esp32s2
tags: [ esp32s2, jtag ]
pytest_examples_esp32s3_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, generic ]
parallel: 3
pytest_examples_esp32s3_usb_serial_jtag:
extends:
- .pytest_examples_dir_jtag_template
- .rules:test:example_test-esp32s3
tags: [ esp32s3, usb_serial_jtag ]
pytest_examples_esp32s3_f4r8:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F4R8 ]
pytest_examples_esp32c2_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, generic, xtal_40mhz ]
parallel: 3
pytest_examples_esp32c2_jtag:
extends:
- .pytest_examples_dir_jtag_template
- .rules:test:example_test-esp32c2
tags: [ esp32c2, jtag ]
pytest_examples_esp32c3_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, generic ]
parallel: 3
pytest_examples_esp32c3_usb_serial_jtag:
extends:
- .pytest_examples_dir_jtag_template
- .rules:test:example_test-esp32c3
tags: [ esp32c3, usb_serial_jtag ]
pytest_examples_esp32c3_flash_suspend:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, flash_suspend ]
pytest_examples_esp32c6_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
tags: [ esp32c6, generic ]
pytest_examples_esp32c6_usj_device:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
tags: [ esp32c6, usj_device ]
pytest_examples_esp32h2_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32h2
needs:
- job: build_pytest_examples_esp32h2
artifacts: false
tags: [ esp32h2, generic ]
pytest_examples_esp32_ethernet_ota:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ethernet_ota ]
pytest_examples_esp32_wifi_high_traffic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, wifi_high_traffic ]
pytest_examples_esp32_flash_encryption_wifi_high_traffic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-include_nightly_run-rule
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, flash_encryption_wifi_high_traffic ]
pytest_examples_esp32c3_flash_encryption_wifi_high_traffic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-include_nightly_run-rule
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, flash_encryption_wifi_high_traffic ]
pytest_examples_esp32_ethernet:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ethernet]
pytest_examples_esp32_ethernet_httpbin:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, httpbin]
pytest_examples_esp32_8mb_flash:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ethernet_flash_8m ]
pytest_examples_esp32_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, wifi_ap ]
pytest_examples_esp32c3_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-wifi
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, wifi_ap ]
pytest_examples_esp32s3_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3-wifi
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, wifi_ap ]
pytest_examples_esp32s2_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s2-wifi
needs:
- job: build_pytest_examples_esp32s2
artifacts: false
tags: [ esp32s2, wifi_ap ]
pytest_examples_esp32c2_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2-wifi
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, wifi_ap, xtal_40mhz ]
pytest_examples_esp32c2_26m_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2-wifi
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, wifi_ap, xtal_26mhz ]
pytest_examples_esp32c6_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6-wifi
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
tags: [ esp32c6, wifi_ap ]
pytest_examples_esp32_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, wifi_router ]
pytest_examples_esp32c3_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-wifi
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, wifi_router ]
pytest_examples_esp32s3_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3-wifi
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, wifi_router ]
pytest_examples_esp32s2_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s2-wifi
needs:
- job: build_pytest_examples_esp32s2
artifacts: false
tags: [ esp32s2, wifi_router ]
pytest_examples_esp32c2_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2-wifi
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, wifi_router, xtal_40mhz ]
pytest_examples_esp32c2_26m_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2-wifi
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, wifi_router, xtal_26mhz ]
pytest_examples_esp32c6_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6-wifi
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
tags: [ esp32c6, wifi_router ]
pytest_examples_esp32_wifi_iperf:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, Example_ShieldBox_Basic ]
pytest_examples_esp32_wifi_wlan:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, wifi_wlan ]
pytest_examples_esp32_ethernet_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ethernet_router ]
pytest_examples_esp32_ethernet_vlan:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, ethernet_vlan ]
pytest_examples_esp32_ethernet_ip101:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, eth_ip101 ]
pytest_examples_esp32_ethernet_bridge:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, eth_w5500 ]
variables:
PYTEST_EXTRA_FLAGS: "--dev-passwd ${ETHERNET_TEST_PASSWORD} --dev-user ${ETHERNET_TEST_USER}"
pytest_examples_esp32_flash_encryption:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, flash_encryption ]
pytest_examples_esp32_wifi_two_dut:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, wifi_two_dut ]
pytest_examples_esp32c3_wifi_two_dut:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-wifi
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, wifi_two_dut ]
pytest_examples_esp32s3_wifi_two_dut:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3-wifi
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, wifi_two_dut ]
pytest_examples_esp32c2_wifi_two_dut:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2-wifi
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, wifi_two_dut, xtal_26mhz ]
pytest_examples_esp32c3_flash_encryption:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, flash_encryption ]
pytest_examples_esp32c3_nvs_encr_hmac:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-nvs_encr_hmac
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, nvs_encr_hmac ]
pytest_examples_esp32s2_usb_device:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s2-usb
needs:
- job: build_pytest_examples_esp32s2
artifacts: false
tags: [ esp32s2, usb_device ]
pytest_examples_esp32_sdmmc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, sdcard_sdmode ]
pytest_examples_esp32_sdspi:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-sdio
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, sdcard_spimode ]
pytest_examples_esp32s2_sdspi:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s2-sdio
needs:
- job: build_pytest_examples_esp32s2
artifacts: false
tags: [ esp32s2, sdcard_spimode ]
pytest_examples_esp32c3_sdspi:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-sdio
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, sdcard_spimode ]
pytest_examples_esp32_extflash:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, external_flash ]
pytest_examples_esp32_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-adc
needs:
- job: build_pytest_examples_esp32
artifacts: false
tags: [ esp32, adc ]
pytest_examples_esp32s2_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s2-adc
needs:
- job: build_pytest_examples_esp32s2
artifacts: false
tags: [ esp32s2, adc ]
pytest_examples_esp32s3_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3-adc
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, adc ]
pytest_examples_esp32c3_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-adc
needs:
- job: build_pytest_examples_esp32c3
artifacts: false
tags: [ esp32c3, adc ]
pytest_examples_esp32c2_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2-adc
needs:
- job: build_pytest_examples_esp32c2
artifacts: false
tags: [ esp32c2, adc, xtal_26mhz]
pytest_examples_esp32c6_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c6-adc
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
tags: [ esp32c6, adc ]
pytest_examples_esp32h2_adc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32h2-adc
needs:
- job: build_pytest_examples_esp32h2
artifacts: false
tags: [ esp32h2, adc ]
pytest_examples_esp32s3_emmc:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32s3
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
tags: [ esp32s3, emmc ]
.pytest_components_dir_template:
extends: .pytest_template
variables:
TEST_DIR: components
BUILD_JOB_PREFIX: build_pytest_components_
pytest_components_esp32_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, generic ]
parallel: 7
pytest_components_esp32_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, generic_multi_device ]
pytest_components_esp32_wifi_two_dut:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, wifi_two_dut ]
pytest_components_esp32_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32-adc
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, adc ]
pytest_components_esp32_sdio:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32-sdio
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, sdio_master_slave ]
pytest_components_esp32_ip101:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_ip101 ]
pytest_components_esp32_lan8720:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_lan8720 ]
pytest_components_esp32_rtl8201:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_rtl8201 ]
pytest_components_esp32_w5500:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_w5500 ]
pytest_components_esp32_ksz8851snl:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_ksz8851snl ]
pytest_components_esp32_dm9051:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_dm9051 ]
pytest_components_esp32_ksz8041:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_ksz8041 ]
pytest_components_esp32_dp83848:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, eth_dp83848 ]
pytest_components_esp32_ethernet:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, ethernet ]
pytest_components_esp32_flash_encryption:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, flash_encryption ]
pytest_components_esp32_flash_multi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32-flash_multi
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, flash_multi ]
pytest_components_esp32_xtal32k:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, xtal32k ]
pytest_components_esp32_no32kXtal:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, no32kXtal ]
pytest_components_esp32_rs485_multi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, multi_dut_modbus_rs485 ]
pytest_components_esp32_psramv0:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, psramv0 ]
pytest_components_esp32s2_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s2
needs:
- job: build_pytest_components_esp32s2
artifacts: false
tags: [ esp32s2, generic ]
parallel: 5
pytest_components_esp32s2_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s2
needs:
- job: build_pytest_components_esp32s2
artifacts: false
tags: [ esp32s2, generic_multi_device ]
pytest_components_esp32s2_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s2-adc
needs:
- job: build_pytest_components_esp32s2
artifacts: false
tags: [ esp32s2, adc ]
pytest_components_esp32s2_flash_multi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s2-flash_multi
needs:
- job: build_pytest_components_esp32s2
artifacts: false
tags: [ esp32s2, flash_multi ]
pytest_components_esp32s3_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, generic ]
parallel: 5
pytest_components_esp32s3_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, generic_multi_device ]
pytest_components_esp32s3_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3-adc
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, adc ]
pytest_components_esp32s3_octal_psram:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, octal_psram ]
pytest_components_esp32s3_quad_psram:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, quad_psram ]
pytest_components_esp32s3_flash_encryption_f4r8:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, flash_encryption_f4r8 ]
pytest_components_esp32s3_flash_encryption_f8r8:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, flash_encryption_f8r8 ]
pytest_components_esp32s3_flash_multi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3-flash_multi
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, flash_multi ]
pytest_components_esp32s3_mspi_f4r4:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F4R4 ]
pytest_components_esp32s3_mspi_f4r8:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F4R8 ]
pytest_components_esp32s3_mspi_f8r8:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F8R8 ]
pytest_components_esp32s3_usb_serial_jtag:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- build_pytest_components_esp32s3
tags: [ esp32s3, usb_serial_jtag ]
pytest_components_esp32c2_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2
needs:
- job: build_pytest_components_esp32c2
artifacts: false
tags: [ esp32c2, generic, xtal_40mhz ]
parallel: 3
pytest_components_esp32c2_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2-adc
needs:
- job: build_pytest_components_esp32c2
artifacts: false
tags: [ esp32c2, adc, xtal_26mhz ]
pytest_components_esp32c2_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2
needs:
- job: build_pytest_components_esp32c2
artifacts: false
tags: [ esp32c2, generic_multi_device, xtal_40mhz ]
pytest_components_esp32c2_xtal_26mhz:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2
needs:
- job: build_pytest_components_esp32c2
artifacts: false
tags: [ esp32c2, generic, xtal_26mhz ]
pytest_components_esp32c3_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, generic ]
parallel: 3
pytest_components_esp32c3_i2c_oled:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, i2c_oled ]
pytest_components_esp32c3_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, generic_multi_device ]
pytest_components_esp32c3_wifi_two_dut:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3-wifi
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, wifi_two_dut ]
pytest_components_esp32c3_usb_serial_jtag:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3
needs:
- build_pytest_components_esp32c3
tags: [ esp32c3, usb_serial_jtag ]
pytest_components_esp32s3_wifi_two_dut:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3-wifi
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, wifi_two_dut ]
pytest_components_esp32c2_wifi_two_dut:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2-wifi
needs:
- job: build_pytest_components_esp32c2
artifacts: false
tags: [ esp32c2, wifi_two_dut, xtal_26mhz ]
pytest_components_esp32c3_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3-adc
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, adc ]
pytest_components_esp32c3_flash_encryption:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, flash_encryption ]
pytest_components_esp32c3_nvs_encr_hmac:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3-nvs_encr_hmac
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, nvs_encr_hmac ]
pytest_components_esp32c3_flash_multi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3-flash_multi
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, flash_multi ]
pytest_components_esp32_sdmmc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, sdcard_sdmode ]
pytest_components_esp32_sdspi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32-sdio
needs:
- job: build_pytest_components_esp32
artifacts: false
tags: [ esp32, sdcard_spimode ]
pytest_components_esp32s2_sdspi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s2-sdio
needs:
- job: build_pytest_components_esp32s2
artifacts: false
tags: [ esp32s2, sdcard_spimode ]
pytest_components_esp32c3_sdspi:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3-sdio
needs:
- job: build_pytest_components_esp32c3
artifacts: false
tags: [ esp32c3, sdcard_spimode ]
pytest_components_esp32c6_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c6
needs:
- job: build_pytest_components_esp32c6
artifacts: false
tags: [ esp32c6, generic ]
parallel: 2
pytest_components_esp32c6_usb_serial_jtag:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c6
needs:
- build_pytest_components_esp32c6
tags: [ esp32c6, usb_serial_jtag ]
pytest_components_esp32h2_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32h2
needs:
- job: build_pytest_components_esp32h2
artifacts: false
tags: [ esp32h2, generic ]
parallel: 2
pytest_components_esp32h2_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32h2
needs:
- job: build_pytest_components_esp32h2
artifacts: false
tags: [ esp32h2, generic_multi_device ]
pytest_components_esp32h2_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32h2-adc
needs:
- job: build_pytest_components_esp32h2
artifacts: false
tags: [ esp32h2, adc ]
pytest_components_esp32h2_ecdsa:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32h2-ecdsa
needs:
- job: build_pytest_components_esp32h2
artifacts: false
tags: [ esp32h2, ecdsa_efuse ]
pytest_components_esp32h2_usb_serial_jtag:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32h2
needs:
- build_pytest_components_esp32h2
tags: [ esp32h2, usb_serial_jtag ]
pytest_components_esp32c6_generic_multi_device:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c6
needs:
- job: build_pytest_components_esp32c6
artifacts: false
tags: [ esp32c6, generic_multi_device ]
pytest_components_esp32c6_adc:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c6-adc
needs:
- job: build_pytest_components_esp32c6
artifacts: false
tags: [ esp32c6, adc ]
pytest_components_esp32c6_i154:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c6-i154
needs:
- job: build_pytest_components_esp32c6
artifacts: false
tags: [ esp32c6, ieee802154 ]
pytest_examples_openthread_br:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-i154
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
- job: build_pytest_examples_esp32c6
artifacts: false
- job: build_pytest_examples_esp32h2
artifacts: false
tags: [ esp32c6, openthread_br ]
script:
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# using runner tags as markers to filter the test cases
# Runner tags are comma separated, replace the comma with " and " for markers
- job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
- markers=$(echo $job_tags | sed -e "s/,/ and /g")
# download the artifacts, requires s3, c6, h2 chips
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32s3"
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32c6"
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32h2"
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
--app-info-filepattern \"list_job_*.txt\"
pytest_examples_openthread_bbr:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-i154
needs:
- job: build_pytest_examples_esp32s3
artifacts: false
- job: build_pytest_examples_esp32c6
artifacts: false
- job: build_pytest_examples_esp32h2
artifacts: false
tags: [ esp32c6, openthread_bbr ]
script:
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# using runner tags as markers to filter the test cases
# Runner tags are comma separated, replace the comma with " and " for markers
- job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
- markers=$(echo $job_tags | sed -e "s/,/ and /g")
# download the artifacts, requires s3, c6, h2 chips
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32s3"
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32c6"
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32h2"
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
--app-info-filepattern \"list_job_*.txt\"
pytest_examples_openthread_sleep:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32h2
needs:
- job: build_pytest_examples_esp32c6
artifacts: false
- job: build_pytest_examples_esp32h2
artifacts: false
tags: [ esp32c6, openthread_sleep ]
script:
- python tools/ci/get_known_failure_cases_file.py
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# using runner tags as markers to filter the test cases
# Runner tags are comma separated, replace the comma with " and " for markers
- job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
- markers=$(echo $job_tags | sed -e "s/,/ and /g")
# download the artifacts, requires c6, h2 chips
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32c6"
- run_cmd python tools/ci/artifacts_handler.py download --job-name "build_pytest_examples_esp32h2"
- run_cmd pytest $TEST_DIR
-m \"${markers}\"
--junitxml=XUNIT_RESULT.xml
--ignore-result-files ${KNOWN_FAILURE_CASES_FILE_NAME}
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
${PYTEST_EXTRA_FLAGS}
--app-info-filepattern \"list_job_*.txt\"
pytest_examples_esp32h2_zigbee:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32h2
needs:
- job: build_pytest_examples_esp32h2
artifacts: false
tags: [ esp32h2, zigbee_multi_dut ]
pytest_components_esp32s3_usb_host:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3-usb
needs:
- job: build_pytest_components_esp32s3
artifacts: false
tags: [ esp32s3, usb_host_flash_disk ]
.pytest_test_apps_dir_template:
extends: .pytest_template
variables:
TEST_DIR: tools/test_apps
BUILD_JOB_PREFIX: build_pytest_test_apps_
REQUIRES_ELF_FILES: "1"
pytest_test_apps_esp32_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32
needs:
- job: build_pytest_test_apps_esp32
artifacts: false
tags: [ esp32, generic ]
pytest_test_apps_esp32_jtag:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32
needs:
- job: build_pytest_test_apps_esp32
artifacts: false
tags: [ esp32, jtag ]
variables:
PYTEST_EXTRA_FLAGS: "--log-cli-level DEBUG"
pytest_test_apps_esp32_ethernet:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32
needs:
- job: build_pytest_test_apps_esp32
artifacts: false
tags: [ esp32, ethernet ]
pytest_test_apps_esp32s2_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s2
needs:
- job: build_pytest_test_apps_esp32s2
artifacts: false
tags: [ esp32s2, generic ]
pytest_test_apps_esp32s3_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- job: build_pytest_test_apps_esp32s3
artifacts: false
tags: [ esp32s3, generic ]
pytest_test_apps_esp32c2_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c2
needs:
- job: build_pytest_test_apps_esp32c2
artifacts: false
tags: [ esp32c2, generic, xtal_40mhz ]
pytest_test_apps_esp32c3_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c3
needs:
- job: build_pytest_test_apps_esp32c3
artifacts: false
tags: [ esp32c3, generic ]
pytest_test_apps_esp32c6_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c6
needs:
- job: build_pytest_test_apps_esp32c6
artifacts: false
tags: [ esp32c6, generic ]
pytest_test_apps_esp32h2_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32h2
needs:
- job: build_pytest_test_apps_esp32h2
artifacts: false
tags: [ esp32h2, generic ]
pytest_test_apps_esp32s3_mspi_f8r8:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- job: build_pytest_test_apps_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F8R8 ]
pytest_test_apps_esp32s3_mspi_f4r8:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- job: build_pytest_test_apps_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F4R8 ]
pytest_test_apps_esp32s3_mspi_f4r4:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- job: build_pytest_test_apps_esp32s3
artifacts: false
tags: [ esp32s3, MSPI_F4R4 ]
pytest_test_apps_esp32s2_wifi_two_dut:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s2-wifi
needs:
- job: build_pytest_test_apps_esp32s2
artifacts: false
tags: [ esp32s2, wifi_two_dut ]
pytest_test_apps_esp32s3_wifi_two_dut:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3-wifi
needs:
- job: build_pytest_test_apps_esp32s3
artifacts: false
tags: [ esp32s3, wifi_two_dut ]
pytest_test_apps_esp32c2_wifi_two_dut:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c2-wifi
needs:
- job: build_pytest_test_apps_esp32c2
artifacts: false
tags: [ esp32c2, wifi_two_dut, xtal_26mhz ]
pytest_test_apps_esp32c3_wifi_two_dut:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c3-wifi
needs:
- job: build_pytest_test_apps_esp32c3
artifacts: false
tags: [ esp32c3, wifi_two_dut]