diff --git a/.github/labeler.yml b/.github/labeler.yml deleted file mode 100644 index 795a9ffb0894..000000000000 --- a/.github/labeler.yml +++ /dev/null @@ -1,37 +0,0 @@ -# https://github.com/actions/labeler/blob/main/README.md - -# When extending this, remember that in the PR, the labeler will run against -# the labeler.yml in main, more info: -# https://github.com/actions/labeler/issues/12 -# This means your changes won't be tested. To test your branch, make a second -# branch with dummy changes, and open a PR on your own fork, against the -# first branch. - -"manifest": -- changed-files: - - any-glob-to-any-file: - - "west.yml" - -"doc-required": -- changed-files: - - any-glob-to-any-file: - - "doc/**/*" - - "**/*.rst" - -"changelog-entry-required": -- all: - - changed-files: - - all-globs-to-all-files: - - "!doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst" - - "!.github/*" - - "!CODEOWNERS" - - "!.*" - -"ble mesh": -- changed-files: - - any-glob-to-any-file: - - "subsys/bluetooth/mesh/*" - - "include/bluetooth/mesh/*" - - "samples/bluetooth/mesh/*" - - "doc/nrf/libraries/bluetooth_services/mesh/*" - - "doc/nrf/ug_bt_mesh*" diff --git a/.github/mergify.yml b/.github/mergify.yml deleted file mode 100644 index 750b5b633a55..000000000000 --- a/.github/mergify.yml +++ /dev/null @@ -1,23 +0,0 @@ -pull_request_rules: - - name: merge using merge action - conditions: - - base=main - - "#approved-reviews-by>=1" - - approved-reviews-by=@ncs-code-owners - - -draft - - -label=DNM - - or: - - label=manifest-find-my - - label=CI-find-my-test - - label!=DNM - # Prevent Merging is the DNM github action check - - check-success=Prevent Merging - # Disable as brach protection rules will handle this. Keeping for future reference - # - check-success=CI/Jenkins/twister - # - or: - # - check-success=CI/Jenkins/integration - # - check-neutral=CI/Jenkins/integration - actions: - merge: - method: rebase - rebase_fallback: none diff --git a/.github/test-spec.yml b/.github/test-spec.yml deleted file mode 100644 index 63c979b68cf1..000000000000 --- a/.github/test-spec.yml +++ /dev/null @@ -1,646 +0,0 @@ -# This is the Jenkins ci variant of the .github/labler.yaml - -"__EXCLUDE__": - - "**/VERSION" - - "**/*.rst" - -"CI-run-twister": - - any: - - "!.github/**/*" - - "!.vscode/**/*" - - "!doc/**/*" - - "!scripts/docker/**/*" - - "!test-manifests/**/*" - - "!CODEOWNERS" - - "!LICENSE" - - "!VERSION" - - "!ncs_version.h.in" - -"CI-tool-test-linux": - - "scripts/requirements*.txt" - - "scripts/tools-versions-linux.yml" - -"CI-tool-test-win": - - "scripts/requirements*.txt" - - "scripts/tools-versions-win10.yml" - -"CI-tool-test-darwin": - - "scripts/requirements*.txt" - - "scripts/tools-versions-darwin.yml" - -"CI-doc-internal": - - "doc/requirements.txt" - - "scripts/tools-versions-linux.yml" - -"CI-iot-serial-lte-modem-test": - - "applications/serial_lte_modem/**/*" - - "lib/at_cmd_parser/**/*" - - "lib/at_monitor/**/*" - - "lib/date_time/**/*" - - "lib/modem_info/**/*" - - "lib/modem_jwt/**/*" - - "lib/nrf_modem_lib/**/*" - - "lib/sms/**/*" - - "subsys/dfu/dfu_target/**/*" - - "subsys/net/lib/downloader/**/*" - - "subsys/net/lib/fota_download/**/*" - - "subsys/net/lib/ftp_client/**/*" - - "subsys/net/lib/nrf_cloud/**/*" - -"CI-iot-zephyr-lwm2m-test": - - "lib/nrf_modem_lib/**/*" - - "lib/at_monitor/**/*" - - "lib/at_cmd_parser/**/*" - - "lib/lte_link_control/**/*" - - "lib/modem_info/**/*" - - "lib/modem_key_mgmt/**/*" - - "lib/date_time/**/*" - - "subsys/net/lib/downloader/**/*" - - "subsys/net/lib/fota_download/**/*" - - "subsys/net/lib/lwm2m_client_utils/**/*" - - "subsys/dfu/dfu_target/**/*" - - "subsys/dfu/fmfu_fdev/**/*" - - "subsys/fw_info/**/*" - - "samples/cellular/lwm2m_client/**/*" - -"CI-audio-test": - - "applications/nrf5340_audio/**/*" - - "tests/nrf5340_audio/**/*" - - "tests/lib/contin_array/**/*" - - "tests/lib/pcm_mix/**/*" - - "tests/lib/data_fifo/**/*" - - "tests/lib/pcm_stream_channel_modifier/**/*" - - "tests/lib/tone/**/*" - - "lib/contin_array/**/*" - - "lib/pcm_mix/**/*" - - "lib/data_fifo/**/*" - - "lib/pcm_stream_channel_modifier/**/*" - - "lib/tone/**/*" - -"CI-iot-samples-test": - - "include/modem/at_monitor.h" - - "include/modem/at_params.h" - - "include/modem/lte_lc*.h" - - "include/modem/modem_key_mgmt.h" - - "include/modem/nrf_modem_lib.h" - - "include/modem/pdn.h" - - "include/modem/sms.h" - - "include/net/downloader.h" - - "include/secure_services.h" - - "lib/at_host/**/*" - - "lib/at_monitor/**/*" - - "lib/lte_link_control/**/*" - - "lib/modem_key_mgmt/**/*" - - "lib/nrf_modem_lib/**/*" - - "lib/pdn/**/*" - - "lib/sms/**/*" - - "samples/cellular/at_client/**/*" - - "samples/cellular/at_monitor/**/*" - - "samples/cellular/ciphersuites/**/*" - - "samples/net/coap_client/**/*" - - "samples/net/download/**/*" - - "samples/cellular/http_update/**/*" - - "samples/net/https_client/**/*" - - "samples/cellular/modem_*/**/*" - - "samples/cellular/mqtt_simple/**/*" - - "samples/cellular/pdn/**/*" - - "samples/cellular/sms/**/*" - - "samples/cellular/udp/**/*" - - "subsys/net/lib/downloader/**/*" - -"CI-lwm2m-test": - - "include/modem/lte_lc*.h" - - "include/modem/nrf_modem_lib.h" - - "lib/bin/lwm2m_carrier/**/*" - - "lib/lte_link_control/**/*" - - "lib/modem_key_mgmt/**/*" - - "lib/nrf_modem_lib/**/*" - - "samples/cellular/lwm2m_carrier/**/*" - - "include/modem/at_monitor.h" - - "lib/at_monitor/**/*" - - "include/net/downloader.h" - - "subsys/net/lib/downloader/**/*" - - "lib/sms/**/*" - - "include/modem/sms.h" - - "lib/pdn/**/*" - - "include/modem/pdn.h" - - "include/modem/at_params.h" - - "include/modem/modem_key_mgmt.h" - - "subsys/dfu/dfu_target/**/*" - -"CI-dfu-test": - - "include/bl*" - - "include/dfu/**/*" - - "include/fprotect.h" - - "include/fw_info.*" - - "include/mgmt/*" - - "include/net/**/*" - - "include/sdfw/sdfw_services/*" - - "lib/dk_buttons_and_leds/**/*" - - "lib/lte_link_control/**/*" - - "modules/mcuboot/**/*" - - "modules/trusted-firmware-m/*" - - "samples/bootloader/**/*" - - "samples/nrf5340/extxip_smp_svr/**/*" - - "samples/nrf5340/netboot/**/*" - - "samples/zephyr/smp_svr_mini_boot/**/*" - - "samples/zephyr/subsys/mgmt/mcumgr/smp_svr/**/*" - - "scripts/bootloader/**/*" - - "samples/mcuboot/**/*" - - "scripts/nrf_compress/**/*" - - "scripts/west_commands/ncs*" - - "subsys/bootloader/**/*" - - "subsys/dfu/*" - - "subsys/fw_info/**/*" - - "subsys/mgmt/**/*" - - "subsys/net/lib/*fota*/**/*" - - "subsys/net/lib/downloader/**/*" - - "subsys/net/lib/mcumgr_smp_client/**/*" - - "subsys/nrf_compress/**/*" - - "subsys/nrf_rpc/**/*" - - "subsys/nrf_security/**/*" - - "subsys/partition_manager/*" - - "subsys/pcd/*" - - "subsys/sdfw_services/**/*" - -"CI-boot-test": - - "include/bl*" - - "include/fprotect.h" - - "include/fw_info.*" - - "include/mgmt/*" - - "include/net/**/*" - - "modules/mcuboot/**/*" - - "modules/trusted-firmware-m/*" - - "samples/nrf5340/netboot/**/*" - - "samples/nrf5340/extxip_smp_svr/**/*" - - "samples/bootloader/**/*" - - "samples/mcuboot/**/*" - - "scripts/bootloader/**/*" - - "scripts/nrf_compress/**/*" - - "scripts/west_commands/ncs*" - - "subsys/bootloader/**/*" - - "subsys/partition_manager/*" - - "subsys/fw_info/**/*" - - "subsys/mgmt/**/*" - - "subsys/pcd/**/*" - - "subsys/nrf_security/**/*" - - "subsys/nrf_compress/**/*" - - "tests/subsys/bootloader/**/*" - - "tests/subsys/dfu/**/*" - - "tests/subsys/pcd/**/*" - - "tests/subsys/kmu/**/*" - - "tests/subsys/nrf_compress/**/*" - - "tests/modules/mcuboot/**/*" - - "tests/drivers/fprotect/negative/**/*" - -"CI-all-test": - - "subsys/partition_manager/**/*" - - "cmake/**/*" - - "sysbuild/**/*" - -"CI-tfm-test": - - "include/tfm/**/*" - - "modules/nrfxlib/**/*" - - "modules/tfm/**/*" - - "modules/trusted-firmware-m/**/*" - - "samples/tfm/**/*" - - "subsys/bootloader/**/*" - - "subsys/partition_manager/**/*" - - any: - - "subsys/nrf_security/**/*" - - "!subsys/nrf_security/doc/**/*" - - "!subsys/nrf_security/*.rst" - - "tests/modules/tfm" - - "tests/tfm/**/*" - -"CI-ble-test": - - any: - - "subsys/bluetooth/**/*" - - "!subsys/bluetooth/mesh/**/*" - - any: - - "include/bluetooth/**/*" - - "!include/bluetooth/mesh/**/*" - - "subsys/nrf_rpc/**/*" - - "subsys/mpsl/**/*" - - "subsys/nrf_security/**/*" - - "drivers/mpsl/**/*" - -"CI-ble-samples-test": - - "samples/bluetooth/central_and_peripheral_hr/*" - - "samples/bluetooth/central_bas/*" - - "samples/bluetooth/central_hids/*" - - "samples/bluetooth/central_hr_coded/*" - - "samples/bluetooth/central_smp_client/*" - - "samples/bluetooth/central_uart/*" - - "samples/bluetooth/direct_test_mode/*" - - "samples/bluetooth/llpm/*" - - "samples/bluetooth/nrf_dm/*" - - "samples/bluetooth/peripheral_ancs_client/*" - - "samples/bluetooth/peripheral_bms/*" - - "samples/bluetooth/peripheral_cgms/*" - - "samples/bluetooth/peripheral_cts_client/*" - - "samples/bluetooth/peripheral_gatt_dm/*" - - "samples/bluetooth/peripheral_hids_keyboard/*" - - "samples/bluetooth/peripheral_hids_mouse/*" - - "samples/bluetooth/peripheral_lbs/*" - - "samples/bluetooth/peripheral_mds/*" - - "samples/bluetooth/peripheral_rscs/*" - - "samples/bluetooth/peripheral_status/*" - - "samples/bluetooth/peripheral_uart/*" - - "samples/bluetooth/radio_coex_1wire/*" - - "samples/bluetooth/throughput/*" - - "samples/mpsl/timeslot/*" - - "samples/peripheral/radio_test/**/*" - - "subsys/nrf_rpc/**/*" - - "subsys/mpsl/**/*" - - "drivers/mpsl/**/*" - - any: - - "subsys/bluetooth/**/*" - - "!subsys/bluetooth/mesh/**/*" - - any: - - "include/bluetooth/**/*" - - "!include/bluetooth/mesh/**/*" - - -"CI-mesh-test": - - "subsys/bluetooth/mesh/**/*" - - "include/bluetooth/mesh/**/*" - - "tests/subsys/bluetooth/mesh/**/*" - - "samples/bluetooth/mesh/**/*" - -"CI-thingy91-test": - - "modules/cjson/**/*" - - "modules/azure-sdk-for-c/**/*" - - "subsys/net/lib/nrf_cloud/**/*" - - "subsys/net/lib/aws_iot/**/*" - - "subsys/net/lib/azure_iot_hub/**/*" - - "lib/date_time/**/*" - - "drivers/sensor/sensor_sim/**/*" - - "samples/net/aws_iot/**/*" - - "samples/net/azure_iot_hub/**/*" - - "samples/net/coap_client/**/*" - - "samples/net/download/**/*" - - "samples/net/http_server/**/*" - - "samples/net/https_client/**/*" - - "samples/net/mqtt/**/*" - - "samples/net/udp/**/*" - -"CI-apps-test": - - "applications/machine_learning/**/*" - - "samples/bluetooth/direction_finding_*/**/*" - - "include/caf/**/*" - - "include/event_manager.h" - - "include/nrf_profiler.h" - - "subsys/bluetooth/*" - - "subsys/caf/**/*" - - "subsys/partition_manager/**/*" - - "samples/ipc/**/*" - -"CI-desktop-test": - - "applications/nrf_desktop/**/*" - - "boards/nordic/*mouse/**/*" - - "boards/nordic/*kbd/**/*" - - "boards/nordic/*dongle/**/*" - - "drivers/sensor/paw3212/**/*" - - "drivers/sensor/pmw3360/**/*" - - "dts/bindings/sensor/pixart*" - - "include/bluetooth/**/*" - - "include/caf/**/*" - - "include/sensor/*" - - "scripts/hid_configurator/**/*" - - "subsys/app_event_manager/**/*" - - "subsys/bluetooth/*" - - "subsys/bluetooth/adv_prov/**/*" - - "subsys/bluetooth/controller/**/*" - - "subsys/bluetooth/services/**/*" - - "subsys/caf/**/*" - - "subsys/partition_manager/**/*" - -"CI-crypto-test": - - "drivers/entropy/*" - - "drivers/hw_cc3xx/*" - - "drivers/net/*" - - "samples/crypto/**/*" - - "subsys/partition_manager/**/*" - - any: - - "subsys/nrf_security/**/*" - - "!subsys/nrf_security/doc/**/*" - - "!subsys/nrf_security/*.rst" - - "tests/crypto/**/*" - - "modules/cjson/**/*" - - "include/tfm/**/*" - - "modules/tfm/**/*" - - "modules/trusted-firmware-m/**/*" - -"CI-rs-test": - - "subsys/bluetooth/Kconfig" - - "subsys/bluetooth/controller/Kconfig" - - "subsys/mpsl/**/*" - - "subsys/ieee802154/**/*" - - "subsys/nrf_rpc/**/*" - - any: - - "subsys/nrf_security/**/*" - - "!subsys/nrf_security/doc/**/*" - - "!subsys/nrf_security/*.rst" - - "drivers/mpsl/**/*" - - "dts/bindings/radio_fem/**/*" - - "applications/ipc_radio/**/*" - - "modules/nrfxlib/nrf_802154/**/*" - - "samples/CMakeLists.txt" - -"CI-fem-test": - - "subsys/bluetooth/Kconfig" - - "subsys/bluetooth/controller/Kconfig" - - "subsys/mpsl/**/*" - - "subsys/ieee802154/**/*" - - "subsys/nrf_rpc/**/*" - - "drivers/mpsl/**/*" - - "boards/shields/**/*" - - "dts/bindings/radio_fem/**/*" - - "applications/ipc_radio/**/*" - - "modules/nrfxlib/nrf_802154/**/*" - - "samples/CMakeLists.txt" - -"CI-thread-test": - - "samples/openthread/**/*" - - "subsys/mpsl/**/*" - - "subsys/ieee802154/**/*" - - "subsys/net/lib/coap_utils/**/*" - - "subsys/net/openthread/**/*" - - "drivers/mpsl/**/*" - - "drivers/hw_cc3xx/*" - - "drivers/entropy/*" - - "modules/nrfxlib/nrf_802154/**/*" - - "modules/openthread/**/*" - -"CI-nfc-test": - - "subsys/nfc/**/*" - - "include/nfc/**/*" - - "lib/st25r3911b/**/*" - - "samples/nfc/**/*" - - "samples/bluetooth/peripheral_nfc_pairing/**/*" - - "samples/bluetooth/central_nfc_pairing/**/*" - - "samples/bluetooth/peripheral_hids_keyboard/**/*" - -"CI-matter-test": - - "drivers/mpsl/**/*" - - "drivers/hw_cc3xx/*" - - "drivers/wifi/**/*" - - "modules/hostap/**/*" - - "modules/lib/hostap/**/*" - - "subsys/net/lib/nrf70_fw_ext/**/*" - - "subsys/net/lib/hostap_crypto/**/*" - - "subsys/mpsl/**/*" - - "subsys/ieee802154/**/*" - - "subsys/bootloader/**/*" - - "subsys/partition_manager/**/*" - - "subsys/dfu/**/*" - - "subsys/fw_info/*" - - "subsys/pcd/**/*" - - "subsys/bluetooth/controller/*" - - "subsys/net/openthread/*" - - any: - - "subsys/nrf_security/**/*" - - "!subsys/nrf_security/doc/**/*" - - "!subsys/nrf_security/*.rst" - - "modules/nrfxlib/nrf_802154/**/*" - - "modules/mcuboot/**/*" - - "samples/matter/**/*" - - "applications/matter_bridge/**/*" - - "applications/matter_weather_station/**/*" - - "applications/ipc_radio/**/*" - -"CI-find-my-test": - - "CMakeLists.txt" - - "Kconfig.nrf" - - "drivers/entropy/**/*" - - "drivers/hw_cc3xx/**/*" - - "drivers/mpsl/**/*" - - "include/dfu/**/*" - - "include/nfc/**/*" - - "include/dk_buttons_and_leds.h" - - "include/app_event_manager.h" - - "lib/dk_buttons_and_leds/**/*" - - "subsys/bootloader/**/*" - - "subsys/dfu/dfu_target/**/*" - - "subsys/app_event_manager/**/*" - - "subsys/nfc/**/*" - - "subsys/partition_manager/**/*" - - "subsys/pcd/**/*" - - "subsys/mpsl/**/*" - - "subsys/nrf_security/**/*" - - "modules/mcuboot/**/*" - - "modules/tfm/**/*" - - "modules/trusted-firmware-m/**/*" - - any: - - "include/bluetooth/**/*" - - "!include/bluetooth/mesh/**/*" - - any: - - "subsys/bluetooth/**/*" - - "!subsys/bluetooth/mesh/**/*" - -"CI-esb-test": - - "include/esb.h" - - "samples/esb/**/*" - - "subsys/esb/*" - - "include/gz*.h" - - "samples/gazell/**/*" - - "subsys/gazell/*" - -"CI-rpc-test": - - "subsys/nrf_rpc/**/*" - - "samples/nrf_rpc/**/*" - -"CI-modemshell-test": - - "ext/curl/**/*" - - "ext/iperf3/**/*" - - "include/date_time.h" - - "include/dk_buttons_and_leds.h" - - "include/modem/at_cmd_parser.h" - - "include/modem/at_monitor.h" - - "include/modem/at_params.h" - - "include/modem/location.h" - - "include/modem/lte_lc.h" - - "include/modem/modem_info.h" - - "include/modem/modem_jwt.h" - - "include/modem/modem_key_mgmt.h" - - "include/modem/nrf_modem_lib.h" - - "include/modem/pdn.h" - - "include/modem/sms.h" - - "include/net/downloader.h" - - "include/net/fota_download.h" - - "include/net/nrf_cloud.h" - - "include/net/nrf_cloud_agnss.h" - - "include/net/nrf_cloud_location.h" - - "include/net/nrf_cloud_os.h" - - "include/net/nrf_cloud_pgps.h" - - "include/net/nrf_cloud_rest.h" - - "include/net/rest_client.h" - - "lib/at_cmd_parser/**/*" - - "lib/at_monitor/**/*" - - "lib/at_shell/**/*" - - "lib/date_time/**/*" - - "lib/dk_buttons_and_leds/**/*" - - "lib/location/**/*" - - "lib/lte_link_control/**/*" - - "lib/modem_info/**/*" - - "lib/modem_jwt/**/*" - - "lib/modem_key_mgmt/**/*" - - "lib/nrf_modem_lib/**/*" - - "lib/pdn/**/*" - - "lib/sms/**/*" - - "lib/supl/**/*" - - "samples/cellular/modem_shell/**/*" - - "subsys/net/lib/downloader/**/*" - - "subsys/net/lib/fota_download/**/*" - - "subsys/net/lib/nrf_cloud/**/*" - - "subsys/net/lib/rest_client/**/*" - -"CI-positioning-test": - - "include/date_time.h" - - "include/dk_buttons_and_leds.h" - - "include/modem/at_cmd_parser.h" - - "include/modem/at_monitor.h" - - "include/modem/at_params.h" - - "include/modem/location.h" - - "include/modem/lte_lc.h" - - "include/modem/modem_info.h" - - "include/modem/modem_jwt.h" - - "include/modem/modem_key_mgmt.h" - - "include/net/nrf_cloud.h" - - "include/net/nrf_cloud_agnss.h" - - "include/net/nrf_cloud_location.h" - - "include/net/nrf_cloud_os.h" - - "include/net/nrf_cloud_pgps.h" - - "include/net/nrf_cloud_rest.h" - - "include/net/rest_client.h" - - "lib/at_cmd_parser/**/*" - - "lib/at_monitor/**/*" - - "lib/date_time/**/*" - - "lib/dk_buttons_and_leds/**/*" - - "lib/location/**/*" - - "lib/lte_link_control/**/*" - - "lib/modem_info/**/*" - - "lib/modem_jwt/**/*" - - "lib/modem_key_mgmt/**/*" - - "lib/supl/**/*" - - "samples/cellular/gnss/**/*" - - "samples/cellular/location/**/*" - - "subsys/net/lib/nrf_cloud/**/*" - - "subsys/net/lib/rest_client/**/*" - -"CI-wifi": - - "drivers/wifi/**/*" - - "samples/wifi/**/*" - - "modules/hostap/**/*" - - "modules/lib/hostap/**/*" - - "subsys/net/lib/nrf70_fw_ext/**/*" - - "subsys/net/lib/hostap_crypto/**/*" - -"CI-cloud-test": - - "include/caf/**/*" - - "include/date_time.h" - - "include/dfu/**/*" - - "include/dk_buttons_and_leds.h" - - "include/drivers/flash/**/*" - - "include/flash_map_pm.h" - - "include/modem/**/*" - - "include/net/downloader.h" - - "include/net/fota_download.h" - - "include/net/nrf_cloud*" - - "include/net/rest_client.h" - - "lib/at_host/**/*" - - "lib/at_monitor/**/*" - - "lib/at_parser/**/*" - - "lib/at_shell/**/*" - - "lib/date_time/**/*" - - "lib/dk_buttons_and_leds/**/*" - - "lib/location/**/*" - - "lib/lte_link_control/**/*" - - "lib/modem_attest_token/**/*" - - "lib/modem_info/**/*/" - - "lib/modem_jwt/**/*" - - "lib/modem_key_mgmt/**/*" - - "lib/nrf_modem_lib/**/*" - - "samples/cellular/nrf_cloud_*/**/*" - - "subsys/app_event_manager/**/*" - - "subsys/bootloader/**/*" - - "subsys/caf/**/*" - - "subsys/dfu/**/*" - - "subsys/net/lib/downloader/**/*" - - "subsys/net/lib/fota_download/**/*" - - "subsys/net/lib/nrf_cloud/**/*" - - "subsys/net/lib/nrf_provisioning/**/*" - - "subsys/net/lib/rest_client/**/*" - - "subsys/nrf_security/**/*" - - "subsys/partition_manager/**/*" - - "tests/subsys/net/lib/nrf_cloud/**/*" - -"CI-test-low-level": - - "applications/hpf/**/*" - - "boards/nordic/nrf54lm20pdk/**/*" - - "boards/nordic/nrf54lv10dk/**/*" - - "drivers/gpio/**/*" - - "dts/bindings/gpio/**/*" - - "include/drivers/gpio/**/*" - - "include/event_manager_proxy.h" - - "subsys/event_manager_proxy/**/*" - - "samples/zephyr/drivers/adc/**/*" - - "samples/zephyr/drivers/audio/**/*" - - "samples/zephyr/drivers/i2c/**/*" - - "samples/zephyr/drivers/watchdog/**/*" - - "samples/zephyr/boards/nordic/**/*" - - "samples/ipc/**/*" - - "samples/event_manager_proxy/**/*" - - "samples/peripheral/lpuart/**/*" - - "samples/zephyr/sensor/qdec/**/*" - - "samples/zephyr/subsys/settings/**/*" - - "snippets/hpf/**/*" - - "snippets/nrf54l09-switch-uart/**/*" - - "soc/nordic/nrf54l/**/*" - - "tests/benchmarks/multicore/idle/**/*" - - "tests/drivers/audio/**/*" - - "tests/drivers/gpio/**/*" - - "tests/drivers/lpuart/**/*" - - "tests/drivers/pwm/**/*" - - "tests/drivers/sensor/**/*" - - "tests/drivers/spi/**/*" - - "tests/drivers/uart/**/*" - - "tests/drivers/i2c/**/*" - - "tests/subsys/event_manager_proxy/**/*" - - "tests/zephyr/boards/nrf/**/*" - - "tests/zephyr/drivers/adc/**/*" - - "tests/zephyr/drivers/comparator/**/*" - - "tests/zephyr/drivers/flash/**/*" - - "tests/zephyr/drivers/gpio/**/*" - - "tests/zephyr/drivers/i2c/**/*" - - "tests/zephyr/drivers/mspi/**/*" - - "tests/zephyr/drivers/retained_mem/**/*" - - "tests/zephyr/drivers/uart/**/*" - - "tests/zephyr/drivers/watchdog/**/*" - -"CI-ps-test": - - "samples/nrf_rpc/protocols_serialization/**/*" - - "subsys/net/openthread/rpc/**/*" - - "subsys/bluetooth/rpc/**/*" - - "subsys/logging/**/*" - - "subsys/mpsl/cx/software/**/*" - - any: - - "subsys/nrf_rpc/**/*" - - "!subsys/nrf_rpc/nrf_rpc_ipc.c" - -"CI-secdom-test": - - "samples/bluetooth/multiple_adv_sets/**/*" - - "samples/nfc/record_text/**/*" - - "samples/app_event_manager/**/*" - - "samples/crypto/rng/**/*" - - "samples/crypto/sha256/**/*" - - "samples/crypto/ecdsa/**/*" - - "lib/dk_buttons_and_leds/**/*" - - "subsys/app_event_manager/**/*" - - "subsys/nrf_security/src/ssf_secdom/**/*" - - "include/nfc/ndef/msg.h" - - "include/nfc/ndef/record.h" - - "include/nfc/ndef/text_rec.h" - - "include/dk_buttons_and_leds.h" - - "include/app_event_manager/app_event_manager.h" diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml deleted file mode 100644 index af2f0ac90fcf..000000000000 --- a/.github/workflows/backport.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Backport -on: - pull_request_target: - types: - - closed - - labeled - branches: - - main - -jobs: - backport: - name: Backport - runs-on: ubuntu-22.04 - # Only react to merged PRs for security reasons. - # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target. - if: > - github.event.pull_request.merged && - ( - github.event.action == 'closed' || - ( - github.event.action == 'labeled' && - contains(github.event.label.name, 'backport') - ) - ) - steps: - - name: Backport - uses: zephyrproject-rtos/action-backport@6b0bae5b575d289305a22ab11a273941b518994c # v2.0.3-3 - with: - github_token: ${{ secrets.NCS_GITHUB_TOKEN }} - issue_labels: Backport - labels_template: '["Backport"]' diff --git a/.github/workflows/contribs.yml b/.github/workflows/contribs.yml deleted file mode 100644 index b8736f632544..000000000000 --- a/.github/workflows/contribs.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Contribs -on: - pull_request_target: - types: [opened, reopened] - -jobs: - contribs: - runs-on: ubuntu-24.04 - name: Contribs - steps: - - name: Contribs - uses: carlescufi/action-contribs@d139e12dabbe631fcc94ec3e19e386a11d3e1a26 # main - with: - github-token: ${{ secrets.NCS_GITHUB_TOKEN }} - command: 'external' - messages: | - Thank you for your contribution! - It seems you are not a member of the nrfconnect GitHub organization. External contributions are handled as follows: - Large contributions, affecting multiple subsystems for example, may be rejected if they are complex, may introduce regressions due to lack of test coverage, or if they are not consistent with the architecture of nRF Connect SDK. - PRs will be run in our continuous integration (CI) test system. - If CI passes, PRs will be tagged for review and merged on successful completion of review. You may be asked to make some modifications to your contribution during review. - If CI fails, PRs may be rejected or may be tagged for review and rework. - PRs that become outdated due to other changes in the repository may be rejected or rework requested. - External contributions will be prioritized for review based on the relevance to current development efforts in nRF Connect SDK. Bug fix PRs will be prioritized. - You may raise issues or ask for help from our Technical Support team by visiting https://devzone.nordicsemi.com/. - | - The author of this pull request has now been added to the nrfconnect GitHub organization. - labels: 'external' diff --git a/.github/workflows/create-upmerge-PRs.yml b/.github/workflows/create-upmerge-PRs.yml deleted file mode 100644 index d9acafd6156a..000000000000 --- a/.github/workflows/create-upmerge-PRs.yml +++ /dev/null @@ -1,112 +0,0 @@ -name: Zephyr upmerge - -# on: -# schedule: -# - cron: "0 0 * * *" -on: workflow_dispatch - -env: - GH_TOKEN: ${{ secrets.NCS_GITHUB_UPMERGE_TOKEN }} - ZEPHYR_UPSTREAM: https://github.com/zephyrproject-rtos/zephyr - MCUBOOT_UPSTREAM: https://github.com/zephyrproject-rtos/mcuboot - PR_TARGET_BRANCH: upmerge-tmp - -jobs: - auto-upmerge-create-PRs: - if: github.repository == 'nrfconnect/sdk-nrf' - runs-on: ubuntu-24.04 - steps: - - name: Checkout sources - uses: nrfconnect/action-checkout-west-update@main - with: - git-fetch-depth: 0 - west-update-args: 'zephyr bsim mcuboot' - - - name: Install base dependencies - working-directory: ncs - run: | - pip3 install -r nrf/scripts/requirements-base.txt - pip3 install -r nrf/scripts/requirements-extra.txt - - - name: Get repo urls - working-directory: ncs - run: | - echo "SDK_ZEPHYR=$(west list zephyr -f {url} | awk -F// '{print $NF}')" >> $GITHUB_ENV - echo "SDK_MCUBOOT=$(west list mcuboot -f {url} | awk -F// '{print $NF}')" >> $GITHUB_ENV - - - name: Try closing existing auto-upmerge PRs - run: | - SDK_ZEPHYR_PR=$(gh pr list --repo $SDK_ZEPHYR --label "auto-upmerge" --json number --jq .[0].number) - gh pr close $SDK_ZEPHYR_PR --repo $SDK_ZEPHYR | true - SDK_MCUBOOT_PR=$(gh pr list --repo $SDK_MCUBOOT --label "auto-upmerge" --json number --jq .[0].number) - gh pr close $SDK_MCUBOOT_PR --repo $SDK_MCUBOOT | true - SDK_NRF_PR=$(gh pr list --repo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY --label "auto-upmerge" --json number --jq .[0].number) - gh pr close $SDK_NRF_PR --repo $GITHUB_SERVER_URL/$GITHUB_REPOSITORY | true - - - name: Run ncs-upmerge and create sdk-zephyr upmerge PR - working-directory: ncs/zephyr - run: | - git remote add -f upstream $ZEPHYR_UPSTREAM && git remote add -f origin https://nordicbuilder:${{secrets.NCS_GITHUB_UPMERGE_TOKEN}}@$SDK_ZEPHYR - git checkout -b upmerge_local - west ncs-upmerger zephyr - git push origin upmerge_local:auto-upmerge/$GITHUB_RUN_ID -u - MCUBOOT_UPSTREAM_REV=$(cat west.yml | awk -e '/- name: mcuboot/,/path: bootloader\/mcuboot/ { if ($0 ~ "revision:.*") { print $2; }; }') - - UPSTREAMHASH=$(git rev-parse --short upstream/main) - ZEPHYR_PR_URL=$(gh pr create --base $PR_TARGET_BRANCH --title "[nrf mergeup] Merge upstream automatically up to commit $UPSTREAMHASH" --body "Automatic upmerge action" --repo $SDK_ZEPHYR --label "auto-upmerge") - echo "ZEPHYR_PR_URL=$ZEPHYR_PR_URL" >> $GITHUB_ENV - echo "Created PR: $ZEPHYR_PR_URL" - echo "MCUboot revision used by upstream: ${MCUBOOT_UPSTREAM_REV}" - echo "MCUBOOT_UPSTREAM_REV=${MCUBOOT_UPSTREAM_REV}" >> $GITHUB_ENV - - - name: Run ncs-upmerge and create sdk-mcuboot upmerge PR - working-directory: ncs/bootloader/mcuboot - run: | - git remote add -f upstream $MCUBOOT_UPSTREAM && git remote add -f origin https://nordicbuilder:${{secrets.NCS_GITHUB_UPMERGE_TOKEN}}@$SDK_MCUBOOT - git checkout -b upmerge_local - west ncs-upmerger mcuboot - git push origin upmerge_local:auto-upmerge/$GITHUB_RUN_ID -u - - UPSTREAMHASH=${MCUBOOT_UPSTREAM_REV} - MCUBOOT_PR_URL=$(gh pr create --base $PR_TARGET_BRANCH --title "[nrf mergeup] Merge upstream automatically up to commit $UPSTREAMHASH" --body "Automatic upmerge action" --repo $SDK_MCUBOOT --label "auto-upmerge") - echo "MCUBOOT_PR_URL=$MCUBOOT_PR_URL" >> $GITHUB_ENV - echo "Created PR: $MCUBOOT_PR_URL" - - - - name: create sdk-nrf PR with updated west.yml - working-directory: ncs/nrf - run: | - NEW_REV=$(echo "pull/$(basename $ZEPHYR_PR_URL)/head" | sed 's/\//\\\//g') - NEW_MCUBOOT_REV=$(echo "pull/$(basename $MCUBOOT_PR_URL)/head" | sed 's/\//\\\//g') - OLD_REV=$(west list zephyr -f {revision}) - OLD_MCUBOOT_REV=$(west list mcuboot -f {revision}) - git checkout -b upmerge_local - sed -i "s/revision: $OLD_REV/revision: $NEW_REV/" west.yml - sed -i "s/revision: $OLD_MCUBOOT_REV/revision: $NEW_MCUBOOT_REV/" west.yml - git commit -a -m "manifest: Update sdk-zephyr revision (automatic Zephyr upmerge)" -m "Automatically created by Github Action" --signoff - git push origin upmerge_local:auto-upmerge/$GITHUB_RUN_ID -u - gh pr create --base $PR_TARGET_BRANCH --title "manifest: Update revisions of upmerged projects (automatic upmerge)" --body "Automatic upmerge action" --label "CI-all-test" --label "auto-upmerge" - - failure-notifier: - runs-on: ubuntu-24.04 - if: failure() - needs: auto-upmerge-create-PRs - env: - MESSAGE: "Zephyr auto-upmerge workflow has failed.
Please check action output for details: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" - steps: - - name: Add summary (steps to reproduce) - run: | - echo "### :boom:Automatic zephyr upmerge action has failed :boom:" >> $GITHUB_STEP_SUMMARY - echo "#### In case of e.g. merge conflict you can reproduce it locally with the following steps:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`sh" >> $GITHUB_STEP_SUMMARY - echo "west init -l nrf" >> $GITHUB_STEP_SUMMARY - echo "west update zephyr" >> $GITHUB_STEP_SUMMARY - echo "cd zephyr" >> $GITHUB_STEP_SUMMARY - echo "git remote add -f upstream https://github.com/zephyrproject-rtos/zephyr" >> $GITHUB_STEP_SUMMARY - echo "west ncs-upmerger zephyr" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "Solve merge-conflict locally and submit sdk-zephyr and sdk-nrf PRs" >> $GITHUB_STEP_SUMMARY - - - name: Send MS Teams notification - run: | - curl -s ${{ secrets.CONNECTOR_TEAMS_NCS_UPMERGE }} -X POST -H 'Content-type: application/json' --data '{"text": "'"$MESSAGE"'"}' diff --git a/.github/workflows/dnm.yml b/.github/workflows/dnm.yml deleted file mode 100644 index 2df5f0056d89..000000000000 --- a/.github/workflows/dnm.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Do Not Merge - -on: - pull_request: - types: [synchronize, opened, reopened, labeled, unlabeled] - -jobs: - do-not-merge: - if: ${{ contains(github.event.*.labels.*.name, 'DNM') }} - name: Prevent Merging - runs-on: ubuntu-24.04 - steps: - - name: Check for label - run: | - echo "Pull request is labeled as 'DNM'" - echo "This workflow fails so that the pull request cannot be merged" - exit 1 diff --git a/.github/workflows/docbuild.yml b/.github/workflows/docbuild.yml deleted file mode 100644 index e0e3feb75e60..000000000000 --- a/.github/workflows/docbuild.yml +++ /dev/null @@ -1,222 +0,0 @@ -name: Documentation Build - -on: - pull_request: - types: [opened, synchronize, reopened] - branches: - - main - - 'v*-branch' - paths: - - '.github/workflows/docbuild.yml' - - '**.rst' - - '**/Kconfig' - - '**/sample.yaml' - - 'doc/**' - - 'applications/**' - - 'include/**' - - 'lib/**' - - 'doc/requirements.txt' - - 'scripts/tools-versions-*.yml' - - 'west.yml' - push: - branches: - - main - - 'v*-branch' - tags: - - v* - -jobs: - build: - runs-on: ubuntu-24.04 - concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - steps: - - name: Checkout sources - uses: nrfconnect/action-checkout-west-update@main - with: - git-fetch-depth: 0 - - - name: cache-pip - uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-doc-pip - - - name: Install packages - run: | - sudo apt update - sudo apt-get install -y ninja-build mscgen plantuml - sudo snap install yq - DOXYGEN_VERSION=$(yq ".doxygen.version" ./ncs/nrf/scripts/tools-versions-linux.yml) - wget --no-verbose "https://github.com/doxygen/doxygen/releases/download/Release_${DOXYGEN_VERSION//./_}/doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz" - tar xf doxygen-${DOXYGEN_VERSION}.linux.bin.tar.gz - echo "${PWD}/doxygen-${DOXYGEN_VERSION}/bin" >> $GITHUB_PATH - - - name: Install Python dependencies - working-directory: ncs - run: | - pip install -r nrf/doc/requirements.txt - - - name: West zephyr-export - working-directory: ncs - run: | - west zephyr-export - - - name: Build documentation - working-directory: ncs/nrf - run: | - if [[ "${{ github.event_name }}" == "push" ]]; then - BUILD_CONF="-DDTS_BINDINGS=ON -DHW_FEATURES=ON" - fi - - cmake -GNinja -Bdoc/_build -Sdoc -DSPHINXOPTS_EXTRA="-q" ${BUILD_CONF} - ninja -C doc/_build - - - name: Check version - run: | - VERSION_REGEX="^v([0-9a-zA-Z\.\-]+)$" - if [[ ${GITHUB_REF#refs/tags/} =~ $VERSION_REGEX ]]; then - VERSION=${BASH_REMATCH[1]} - elif [[ ${GITHUB_REF#refs/heads/} == "main" ]]; then - VERSION="latest" - elif [[ "${{ github.event_name }}" == "pull_request" ]]; then - VERSION="pr-${{ github.event.number }}" - fi - - echo "VERSION=${VERSION}" >> $GITHUB_ENV - - - name: Prepare legacy upload - if: ${{ !contains(github.event.pull_request.labels.*.name, 'external') || contains(github.event.pull_request.labels.*.name, 'CI-trusted-author') }} - working-directory: ncs/nrf - run: | - MONITOR="monitor_${{ github.run_id }}.txt" - - # Create documentation upload files - if [[ "${{ github.event_name }}" == "pull_request" ]]; then - ARCHIVE="legacy-ncs-pr-${{ github.event.number }}.zip" - echo "publish2 dev PR-${{ github.event.number }} ${ARCHIVE}" > "${MONITOR}" - echo "${{ github.event.number }}" > pr.txt - else - if [ -z "${VERSION}" ]; then - echo "Not a release or latest, skipping publish" - exit 0 - fi - - ARCHIVE="legacy-ncs-${VERSION}.zip" - echo "publish2 main ${VERSION} ${ARCHIVE}" > "${MONITOR}" - fi - - cd doc/_build/html - zip -rq "${ARCHIVE}" . - mv "${ARCHIVE}" ../../../ - - - name: Prepare Zoomin upload - if: ${{ !contains(github.event.pull_request.labels.*.name, 'external') || contains(github.event.pull_request.labels.*.name, 'CI-trusted-author') }} - working-directory: ncs/nrf - run: | - ROOT="$PWD" - - # Doxygen APIs combined with Sphinx - declare -a SPHINX_DOXYGEN=("nrf" "nrfxlib" "zephyr") - - mkdir doc/_build/html-doxygen - - for docset in "${SPHINX_DOXYGEN[@]}"; do - OUTDIR=doc/_build/html-doxygen/$docset-apis - mv doc/_build/html/$docset/doxygen/html "$OUTDIR" - - # Populate custom.properties, tags.yml - cp doc/_zoomin/$docset.apis.custom.properties "$OUTDIR/custom.properties" - sed -i 's/__VERSION__/'"$VERSION"'/g' "$OUTDIR/custom.properties" - - cp doc/_zoomin/$docset.apis.tags.yml "$OUTDIR/tags.yml" - sed -i 's/__VERSION__/'"$VERSION"'/g' "$OUTDIR/tags.yml" - - # Patch links from Sphinx to other docset Doxygen APIs - find doc/_build/html/$docset -type f -name "*.html" -exec \ - sed -ri "/href=\"([^\"]+)\/([a-z]+)\/doxygen\/html\/([^\"]+)\"/{s//href=\"..\/..\/\1\/\2-apis-$VERSION\/page\/\3\"/g; :a s/__/_/g;ta; }" {} \; - - # Patch links from Sphinx to same docset Doxygen APIs - find doc/_build/html/$docset -type f -name "*.html" -exec \ - sed -ri "/href=\"([^\"]+)\/doxygen\/html\/([^\"]+)\"/{s//href=\"\1\/..\/..\/..\/$docset-apis-$VERSION\/page\/\2\"/g; :a s/__/_/g;ta; }" {} \; - - pushd "$OUTDIR" - ARCHIVE="$docset-apis-$VERSION.zip" - zip -rq "$ARCHIVE" . - mv "$ARCHIVE" "$ROOT" - popd - done - - # Doxygen APIs standalone - declare -a DOXYGEN=("nrfx" "wifi") - - for docset in "${DOXYGEN[@]}"; do - OUTDIR=doc/_build/html-doxygen/$docset-apis - mv doc/_build/html/$docset/html "$OUTDIR" - - # Populate custom.properties, tags.yml - cp doc/_zoomin/$docset.apis.custom.properties "$OUTDIR/custom.properties" - sed -i 's/__VERSION__/'"$VERSION"'/g' "$OUTDIR/custom.properties" - - cp doc/_zoomin/$docset.apis.tags.yml "$OUTDIR/tags.yml" - sed -i 's/__VERSION__/'"$VERSION"'/g' "$OUTDIR/tags.yml" - - pushd "$OUTDIR" - ARCHIVE="$docset-apis-$VERSION.zip" - zip -rq "$ARCHIVE" . - mv "$ARCHIVE" "$ROOT" - popd - done - - # NCS - OUTDIR=doc/_build/html - - # Populate custom.properties, tags.yml - cp doc/_zoomin/ncs.custom.properties "$OUTDIR/custom.properties" - sed -i 's/__VERSION__/'"$VERSION"'/g' "$OUTDIR/custom.properties" - - cp doc/_zoomin/ncs.tags.yml "$OUTDIR/tags.yml" - sed -i 's/__VERSION__/'"$VERSION"'/g' "$OUTDIR/tags.yml" - - ARCHIVE="ncs-$VERSION.zip" - pushd "$OUTDIR" - zip -rq "$ARCHIVE" . - mv "$ARCHIVE" "$ROOT" - popd - - - name: Find nRF Connect SDK Edited Documents - working-directory: ncs/nrf - run: | - COMMENT="comment.txt" - PREFIX="https://ncsdoc.z6.web.core.windows.net/PR-${{ github.event.pull_request.number }}/" - CHANGED=$(git diff --name-only --diff-filter=d "${{ github.event.pull_request.base.sha }}..HEAD") - - echo "You can find the documentation preview for this PR [here](${PREFIX})." >> $COMMENT - - NRF=$(echo "$CHANGED" | \ - grep -e "doc/nrf/" | \ - grep -e ".rst" | \ - sed -e "s#^doc/nrf\(.*\)\.rst#${PREFIX}nrf\1.html#g") - - NRF_EXT=$(echo "$CHANGED" | \ - grep -e "applications/" -e "samples/" -e "scripts/" -e "tests/" | \ - grep -e ".rst" | \ - sed -e "s#^\(applications\|samples\|scripts\|tests\)\(.*\)\.rst#${PREFIX}nrf\/\1\2.html#g") - - NRF_ALL=$(printf "$NRF\n$NRF_EXT") - - if [ ! -z "$NRF_ALL" ]; then - printf "\nPreview links for modified nRF Connect SDK documents:\n\n$NRF_ALL" >> $COMMENT - fi - - - name: Store - if: ${{ !contains(github.event.pull_request.labels.*.name, 'external') || contains(github.event.pull_request.labels.*.name, 'CI-trusted-author') }} - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 - with: - name: docs - path: | - ncs/nrf/*.zip - ncs/nrf/monitor*.txt - ncs/nrf/pr.txt - ncs/nrf/comment.txt diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 37e2d9a2dd18..000000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Build and Push Docker Image - -on: - push: - tags: - - 'v*' - branches: # Trigger on push to main and release branches - - main - - 'v*-branch' - -env: - IMAGE_NAME: ghcr.io/${{ github.repository }}-toolchain - -jobs: - build: - runs-on: ubuntu-24.04 - - steps: - - name: Checkout repository - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3 - - - name: Login to GitHub Container Registry - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3 - with: - registry: ghcr.io - username: NordicBuilder - password: ${{ secrets.NCS_GITHUB_PKG_WRITE_TOKEN }} - - - name: Check if Docker image exists - id: check-image - run: | - TOOLCHAIN_ID=$(./scripts/print_toolchain_checksum.sh) - echo "TOOLCHAIN_ID=$TOOLCHAIN_ID" >> $GITHUB_OUTPUT - if docker manifest inspect ${IMAGE_NAME}:$TOOLCHAIN_ID > /dev/null 2>&1; then - echo "exists=true" >> $GITHUB_OUTPUT - else - echo "exists=false" >> $GITHUB_OUTPUT - fi - - - name: Build and push Docker image - if: steps.check-image.outputs.exists == 'false' - working-directory: scripts/docker - run: | - docker build -t ${IMAGE_NAME}:${{steps.check-image.outputs.TOOLCHAIN_ID}} --build-arg VERSION=${{steps.check-image.outputs.TOOLCHAIN_ID}} . - docker push ${IMAGE_NAME}:${{steps.check-image.outputs.TOOLCHAIN_ID}} - if [[ ${{ github.ref_name }} == "main" ]]; then - docker tag ${IMAGE_NAME}:${{steps.check-image.outputs.TOOLCHAIN_ID}} ${IMAGE_NAME}:latest - docker push ${IMAGE_NAME}:latest - fi - - - name: Tag and push Docker image for tags - if: github.event_name == 'push' && github.ref_type == 'tag' - run: | - docker pull ${IMAGE_NAME}:${{steps.check-image.outputs.TOOLCHAIN_ID}} - docker tag ${IMAGE_NAME}:${{steps.check-image.outputs.TOOLCHAIN_ID}} ${IMAGE_NAME}:${{ github.ref_name }} - docker push ${IMAGE_NAME}:${{ github.ref_name }} diff --git a/.github/workflows/docpublish.yml b/.github/workflows/docpublish.yml deleted file mode 100644 index 0391eb82d0eb..000000000000 --- a/.github/workflows/docpublish.yml +++ /dev/null @@ -1,91 +0,0 @@ -name: Documentation Publish - -on: - workflow_run: - workflows: ["Documentation Build"] - types: - - completed - -jobs: - publish: - runs-on: ubuntu-24.04 - if: ${{ github.event.workflow_run.conclusion == 'success' }} - steps: - - name: Download artifacts - uses: dawidd6/action-download-artifact@bf251b5aa9c2f7eeb574a96ee720e24f801b7c11 # v6 - with: - workflow: docbuild.yml - run_id: ${{ github.event.workflow_run.id }} - - - name: Unzip html archive - working-directory: docs - run: | - OUTDIR=$(awk 'NR==1 { if ($3 ~ /^(latest|PR-[0-9]+|[0-9]+\.[0-9a-zA-Z\.\-]+)$/) print $3 }' monitor_*.txt) - echo "OUTDIR=$OUTDIR" >> "$GITHUB_ENV" - unzip legacy-ncs*.zip -d $OUTDIR - - - name: Obtain PR number - working-directory: docs - run: | - echo "PR=$(cat pr.txt)" >> "$GITHUB_ENV" - - - name: Upload to Azure storage - working-directory: docs - env: - AZCOPY_CONCURRENCY_VALUE: 1024 - run: | - azcopy cp $OUTDIR "${{ vars.NCS_DOC_STORAGE_URL }}?${{ secrets.NCS_DOC_SAS}}" --recursive=true - - - name: Upload Zoomin documentation - run: | - for file in docs/monitor*.txt; do - if ! grep -q main ${file}; then - echo "Not targeting main, skipping Zoomin upload" - exit 0 - fi - done - - # trust server - mkdir -p ~/.ssh - ssh-keyscan upload-v1.zoominsoftware.io >> ~/.ssh/known_hosts - - # prepare key - echo "${{ secrets.NCS_ZOOMIN_KEY }}" | base64 -d > zoomin_key - chmod 600 zoomin_key - - # upload files - for file in docs/*-apis-*.zip; do - sftp -v -i zoomin_key nordic@upload-v1.zoominsoftware.io <> $GITHUB_ENV - - - name: Checkout the repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - fetch-depth: 0 - persist-credentials: false - - - name: Get files modified by recent commits - id: get_files - run: | - echo "Modified files in this commit:" - git diff --name-only ${{ github.event.before }} ${{ github.sha }} > modified_files.txt - cat modified_files.txt - - - name: Check if any watched files are modified - id: check_files - run: | - modified_files=$(cat modified_files.txt) - IFS=',' read -r -a watched_files <<< "${{ env.TOOLCHAIN_FILES }}" - modified=false - for file in "${watched_files[@]}"; do - if echo "$modified_files" | grep -q "$file"; then - echo "$file was modified." - modified=true - fi - done - echo "modified=$modified" >> $GITHUB_ENV - - # App token is required to update Check Status - - name: Get jenkins-ncs App token - if: env.modified == 'true' - uses: actions/create-github-app-token@21cfef2b496dd8ef5b904c159339626a10ad380e # v1 - id: app-token - with: - app-id: ${{ vars.JENKINS_NCS_APP_ID }} - private-key: ${{ secrets.JENKINS_NCS_APP_PRIVATE_KEY }} - - - name: Find open pull requests targeting this branch and modyfing Toolchain files - if: env.modified == 'true' - id: find_prs - run: | - PRs=$(gh pr list --limit 500 --base ${{ github.ref_name }} --state open --json url,headRefName,files --jq '[.[] | select(.files[]? | .path as $file | [$file] | inside([env.TOOLCHAIN_FILES]))]') - echo "Found PRs: $PRs" - echo "prs=$PRs" >> $GITHUB_ENV - env: - GH_TOKEN: ${{ steps.app-token.outputs.token }} - - - name: Set CI/Jenkins/toolchain status check to failure - if: env.modified == 'true' && steps.find_prs.outputs.prs != '[]' - env: - GH_TOKEN: ${{ steps.app-token.outputs.token }} - run: | - for pr in $(echo "$prs" | jq -r '.[].url'); do - pr_url=$(echo $pr | sed 's|https://github.com/||') - pr_owner=$(echo $pr_url | cut -d'/' -f1) - pr_repo=$(echo $pr_url | cut -d'/' -f2) - pr_number=$(echo $pr_url | cut -d'/' -f4) - - echo "Setting CI/Jenkins/toolchain status to failure for PR: $pr" - - # Get the SHA of the last commit in the PR branch - commit_sha=$(gh pr view $pr_number --json headRefOid --jq '.headRefOid') - - # Get the Check Run ID by listing the check runs for the PR's head commit - check_run_id=$(gh api \ - -H "Accept: application/vnd.github.v3+json" \ - /repos/$pr_owner/$pr_repo/commits/$commit_sha/check-runs \ - --jq '.check_runs[] | select(.name == "CI/Jenkins/toolchain") | .id') - - # If no check run exists, create a new one; otherwise, update the existing one - if [ -z "$check_run_id" ]; then - echo "Creating new check run for PR: $pr" - gh api \ - -H "Accept: application/vnd.github.v3+json" \ - --method POST /repos/$pr_owner/$pr_repo/check-runs \ - -f name="CI/Jenkins/toolchain" \ - -f head_sha="$commit_sha" \ - -f status="completed" \ - -f conclusion="failure" \ - -f output[title]="Rebase needed - Toolchain changed on '${{ github.ref_name }}' branch" \ - -f output[summary]="Toolchain was modified on '${{ github.ref_name }}' and this PR has to be rebased" - else - echo "Updating existing check run with ID $check_run_id" - gh api \ - -H "Accept: application/vnd.github.v3+json" \ - --method PATCH /repos/$pr_owner/$pr_repo/check-runs/$check_run_id \ - -f conclusion="failure" \ - -f status="completed" \ - -f output[title]="Rebase needed - Toolchain changed on '${{ github.ref_name }}' branch" \ - -f output[summary]="Toolchain was modified on '${{ github.ref_name }}' and this PR has to be rebased" - fi - done diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml deleted file mode 100644 index 7317a12937a3..000000000000 --- a/.github/workflows/labeler.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: 'Pull Request Labeler' -on: - - pull_request_target - -jobs: - triage: - runs-on: ubuntu-24.04 - steps: - - uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0 - with: - repo-token: '${{ secrets.GITHUB_TOKEN }}' - sync-labels: true diff --git a/.github/workflows/license-reusable.yml b/.github/workflows/license-reusable.yml deleted file mode 100644 index 3ecd7ec089fb..000000000000 --- a/.github/workflows/license-reusable.yml +++ /dev/null @@ -1,101 +0,0 @@ -# -# You can call this workflow in your repository. See the example caller workflow: -# -# -------------------------------------------------------------------------------------- -# name: My License Check Caller -# on: pull_request -# jobs: -# call-workflow: -# uses: nrfconnect/sdk-nrf/.github/workflows/license-reusable.yml@main -# with: -# path: my_module_path -# license_allow_list: my_module_path/license_allow_list.yaml -# # You can find more details about the inputs below. -# -------------------------------------------------------------------------------------- - -name: Reusable License Check - -on: - workflow_call: - inputs: - path: - # Required path to your module relative to west workspace. - type: string - required: true - - license_allow_list: - # Optional path to your custom license allow list file relative to west workspace. - # By default, the list form the "sdk-nrf" repository is used. For details about - # format of the list, see "scripts/ci/license_allow_list.yaml" in the - # "sdk-nrf" repository. - type: string - default: nrf/scripts/ci/license_allow_list.yaml - -jobs: - license_job: - runs-on: ubuntu-24.04 - name: Run license checks on patch series (PR) - steps: - - name: Checkout sources - uses: nrfconnect/action-checkout-west-update@main - with: - git-fetch-depth: 0 - path: ncs/${{ inputs.path }} - west-update-args: '-n zephyr bsim' - - - name: cache-pip - uses: actions/cache@2f8e54208210a422b2efd51efaa6bd6d7ca8920f # v3 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-doc-pip - - - name: Install python dependencies - run: | - pip3 install -U pip - pip3 install -U setuptools - export PATH="$HOME/.local/bin:$PATH" - pip3 install -U wheel - pip3 install --user -U west - pip3 show -f west - - - name: West zephyr-export - working-directory: ncs - env: - PR_REF: ${{ github.event.pull_request.head.sha }} - run: | - export PATH="$HOME/.local/bin:$PATH" - export PATH="$HOME/bin:$PATH" - west zephyr-export - echo "ZEPHYR_BASE=$(pwd)/zephyr" >> $GITHUB_ENV - # debug - ( cd ${{ inputs.path }}; echo "${{ inputs.path }}"; git log --pretty=oneline --max-count=10 ) - ( cd nrf; echo "nrf"; git log --pretty=oneline --max-count=10 ) - ( cd zephyr; echo "zephyr"; git log --pretty=oneline --max-count=10 ) - - - name: Install license check script dependencies - run: | - pip3 install -U -r ncs/nrf/scripts/ci/requirements.txt - - - name: Run license checks - id: license_checks - env: - BASE_REF: ${{ github.base_ref }} - ZEPHYR_BASE: ${{ env.ZEPHYR_BASE }} - working-directory: ncs/${{ inputs.path }} - if: contains(github.event.pull_request.user.login, 'dependabot[bot]') != true - run: | - export PATH="$HOME/.local/bin:$PATH" - export PATH="$HOME/bin:$PATH" - ${ZEPHYR_BASE}/../nrf/scripts/ci/check_license.py \ - --github \ - -l ${ZEPHYR_BASE}/../${{ inputs.license_allow_list }} \ - -c origin/${BASE_REF}.. - - - name: Upload results - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4 - continue-on-error: true - if: always() && contains(github.event.pull_request.user.login, 'dependabot[bot]') != true - with: - name: licenses.xml - path: ncs/${{ inputs.path }}/licenses.xml - overwrite: true diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml deleted file mode 100644 index 2c0a3ca64078..000000000000 --- a/.github/workflows/license.yml +++ /dev/null @@ -1,9 +0,0 @@ -name: License Check - -on: pull_request - -jobs: - call-workflow: - uses: ./.github/workflows/license-reusable.yml - with: - path: nrf diff --git a/.github/workflows/manifest.yml b/.github/workflows/manifest.yml deleted file mode 100644 index 8c67830e9fda..000000000000 --- a/.github/workflows/manifest.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Manifest -on: pull_request_target - -permissions: - contents: read - pull-requests: write - -jobs: - manifest: - runs-on: ubuntu-24.04 - name: Manifest - steps: - - name: Checkout the code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - with: - path: ncs/nrf - ref: ${{ github.event.pull_request.head.sha }} - fetch-depth: 0 - persist-credentials: false - - - name: west setup - env: - BASE_REF: ${{ github.base_ref }} - working-directory: ncs/nrf - run: | - pip3 install west - git config --global user.email "you@example.com" - git config --global user.name "Your Name" - west init -l . || true - - - name: Manifest - uses: zephyrproject-rtos/action-manifest@ea38f222cddfbbb9debb5f0239f4139ae2677ebb # v1.8.0 - with: - github-token: ${{ secrets.NCS_GITHUB_TOKEN }} - manifest-path: 'west.yml' - checkout-path: 'ncs/nrf' - use-tree-checkout: 'true' - west-import-flag: 'self' - check-impostor-commits: 'true' - label-prefix: 'manifest-' - verbosity-level: '1' - labels: 'manifest' - dnm-labels: 'DNM' - allowed-unreachables: 'dragoon' diff --git a/.github/workflows/oss-history.yml b/.github/workflows/oss-history.yml deleted file mode 100644 index 49f55d66907c..000000000000 --- a/.github/workflows/oss-history.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: OSS history check -on: pull_request - -jobs: - contribs: - runs-on: ubuntu-24.04 - name: Check OSS history - steps: - - name: Checkout sources - uses: nrfconnect/action-checkout-west-update@main - with: - git-fetch-depth: 0 - west-update-args: '' - - - name: Install extra python dependencies - run: | - pip3 install --upgrade pip setuptools west - pip3 install -r ncs/nrf/scripts/requirements-extra.txt - - - name: Set upsteam - working-directory: ncs - run: | - git -C zephyr remote add upstream https://github.com/zephyrproject-rtos/zephyr - - - name: Check manifest userdata - working-directory: ncs/nrf - run: | - python3 scripts/ci/check_manifest_userdata.py - - - name: Check OSS history - uses: nrfconnect/action-oss-history@main - with: - workspace: 'ncs' - args: -p zephyr -p mcuboot -p hostap -p wfa-qt-control-app diff --git a/.github/workflows/reapply-ci-trusted-author.yml b/.github/workflows/reapply-ci-trusted-author.yml deleted file mode 100644 index 7800a2dd7be7..000000000000 --- a/.github/workflows/reapply-ci-trusted-author.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Reapply CI-trusted-author label -# We want to use NordicBuilder instead of github-actions[bot] user -# github-actions[bot] is not trusted collaborator and labels added by it does not trigger Jenkins builds - -on: - pull_request_target: - types: [opened, reopened, synchronize] - -jobs: - reapply_label: - name: Reapply label - if: ${{ contains(github.event.*.labels.*.name, 'CI-trusted-author') }} - runs-on: ubuntu-24.04 - steps: - - name: Remove CI-trusted-author label - run: gh pr edit ${{ github.event.pull_request.number }} --remove-label "CI-trusted-author" - env: - GH_TOKEN: ${{ secrets.NCS_JENKINS_TOKEN }} - GH_REPO: ${{ github.repository }} - - - name: Add CI-trusted-author label - run: gh pr edit ${{ github.event.pull_request.number }} --add-label "CI-trusted-author" - env: - GH_TOKEN: ${{ secrets.NCS_JENKINS_TOKEN }} - GH_REPO: ${{ github.repository }} diff --git a/.github/workflows/remove-ci-requested.yml b/.github/workflows/remove-ci-requested.yml deleted file mode 100644 index 50282b238bed..000000000000 --- a/.github/workflows/remove-ci-requested.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: Remove CI-Requested label - -on: - pull_request_target: - types: [opened, reopened, synchronize] - -jobs: - remove_label: - name: Remove label - if: ${{ contains(github.event.*.labels.*.name, 'CI-Requested') }} - runs-on: ubuntu-24.04 - steps: - - name: Remove label - run: gh pr edit ${{ github.event.pull_request.number }} --remove-label "CI-Requested" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} diff --git a/.github/workflows/review-quarantine-pr.yml b/.github/workflows/review-quarantine-pr.yml deleted file mode 100644 index 30848e6b6910..000000000000 --- a/.github/workflows/review-quarantine-pr.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: Quarantine validation - -on: - pull_request_target: - branches: - - main - - v*-branch - paths: - - '**/scripts/quarantine*.yaml' -jobs: - quarantine-info: - runs-on: ubuntu-24.04 - steps: - - name: Add information about quarantine process - run: | - # Find existing comment - comment_id=$(gh pr view ${{ github.event.pull_request.number }} --json comments --jq '.comments[] | select(.body | contains("Quarantine Process")) | .id' || echo "") - if [[ -z "$comment_id" ]]; then - # No comment - create new one - gh pr comment "$PR_NUMBER" --body "$BODY" - fi - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GH_REPO: ${{ github.repository }} - PR_NUMBER: ${{ github.event.pull_request.number }} - BODY: > - Since quarantine was modified, please make sure - you are following the process described in - [Quarantine Process](https://nordicsemi.atlassian.net/wiki/spaces/NCS/pages/1104576817/Quarantine). diff --git a/.github/workflows/scripts-test.yml b/.github/workflows/scripts-test.yml deleted file mode 100644 index 151c6a26e532..000000000000 --- a/.github/workflows/scripts-test.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Python scripts tests - -on: - pull_request: - branches: - - main - paths: - - 'scripts/**/*' - -jobs: - test-scripts: - name: Run tests for python scripts - strategy: - fail-fast: false - matrix: - os: [ubuntu-24.04] - python-version: ['3.10', '3.11', '3.12', '3.13'] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install packages - run: python -m pip install -r scripts/requirements-test.txt - - name: Run tests - run: python -m pytest scripts --ignore=scripts/ci/test_plan.py diff --git a/.github/workflows/src-mirror.yml b/.github/workflows/src-mirror.yml deleted file mode 100644 index 3e109bdbc3e7..000000000000 --- a/.github/workflows/src-mirror.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: src-mirror - -on: - workflow_dispatch: - inputs: - git-ref: - description: 'Branch, tag or SHA to checkout' - required: true - default: 'main' - push: - tags: - - '*' - pull_request: - types: - - opened - - synchronize - paths: - - .github/workflows/src-mirror.yml - -concurrency: - group: src-mirror-${{ github.ref }} - cancel-in-progress: true - -jobs: - - # Tar entire project west workspace, prune, and upload to artifact service. - standard: - runs-on: ubuntu-24.04-16cores - steps: - - name: Upload src.tar.gz - uses: nrfconnect/action-src-mirror@main - with: - path: 'nrf' - west-update-args: '' - artifactory-path: >- - ${{ (github.ref_type != 'tag') && - format('ncs-src-mirror/internal/{0}/{1}/src.tar.gz', github.event.repository.name, github.ref_name) || - format('ncs-src-mirror/external/{1}/src.tar.gz', github.event.repository.name, github.ref_name) }} - artifactory-user: ${{ secrets.COM_NORDICSEMI_FILES_USERNAME }} - artifactory-pass: ${{ secrets.COM_NORDICSEMI_FILES_PASSWORD }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 5586e2c85eaf..000000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: "Close stale pull requests/issues" -on: - schedule: - - cron: "16 00 * * *" - -jobs: - stale: - runs-on: ubuntu-24.04 - steps: - - uses: actions/stale@5bef64f19d7facfb25b37b414482c7164d639639 # v9 - with: - repo-token: ${{ secrets.NCS_GITHUB_TOKEN }} - stale-pr-message: 'This pull request has been marked as stale because it has been open (more than) 30 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 7 days. Note, that you can always re-open a closed pull request at any time.' - stale-issue-message: 'This issue has been marked as stale because it has been open (more than) 30 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this issue will automatically be closed in 7 days. Note, that you can always re-open a closed issue at any time.' - days-before-stale: 30 - days-before-close: 7 - stale-issue-label: 'Stale' - stale-pr-label: 'Stale' diff --git a/.github/workflows/vale-lint.yml b/.github/workflows/vale-lint.yml deleted file mode 100644 index 165ae0eb659c..000000000000 --- a/.github/workflows/vale-lint.yml +++ /dev/null @@ -1,72 +0,0 @@ -name: Documentation style checker - -on: - push: - branches: [main] - paths: - - '**/*.md' - - '**/*.rst' - - '.vale.ini' - - '.github/vale/**' - - '.github/workflows/vale-lint.yml' - pull_request: - branches: [main] - paths: - - '**/*.md' - - '**/*.rst' - - '.vale.ini' - - '.github/vale/**' - - '.github/workflows/vale-lint.yml' - workflow_dispatch: - -jobs: - vale: - name: Vale doc linter - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install dependencies and Vale - run: | - echo "Installing pip and docutils..." - sudo apt-get update - sudo apt-get install -y python3-pip - pip install --upgrade docutils - - echo "Installing Vale..." - curl -L -o vale.tar.gz https://github.com/errata-ai/vale/releases/download/v2.30.0/vale_2.30.0_Linux_64-bit.tar.gz - mkdir -p bin - tar -xvzf vale.tar.gz -C bin - sudo mv bin/vale /usr/local/bin/vale - vale -v - - - name: Run Vale - id: lint - run: | - echo "Running Vale linting..." - # Save output to a file without displaying it yet - vale --output line . | tee vale_output.txt - - # Check if there were any issues - if [ -s vale_output.txt ]; then - echo "Vale found documentation issues!" - cat vale_output.txt - echo "has_issues=true" >> $GITHUB_OUTPUT - echo "Warning: Documentation linting failed. Please fix the issues reported by Vale." - exit 1 - else - echo "has_issues=false" >> $GITHUB_OUTPUT - echo "No issues found by Vale." - fi - -# The following lines should be used instead of lines 26+ and we should use the official Vale -# GitHub Action hook from https://github.com/errata-ai/vale-action?tab=readme-ov-file. -# However, Nordic Semiconductor GitHub policy does not allow us to use third party actions that -# are not part of GitHub's default action library. The following lines are commented out and kept -# for reference and potential future use. -# -# - uses: errata-ai/vale-action@v2.1.1 -### with: -##### files: ../docs/guides/ -##### reporter: github-check -##### filter_mode: added diff --git a/.github/workflows/validate-pip-requirements-fixed-file.yml b/.github/workflows/validate-pip-requirements-fixed-file.yml deleted file mode 100644 index e53e09731068..000000000000 --- a/.github/workflows/validate-pip-requirements-fixed-file.yml +++ /dev/null @@ -1,77 +0,0 @@ -name: Validate pip requirements-fixed.txt - -on: - pull_request: - types: [opened, synchronize, reopened] - branches: - - main - - 'v*-branch' - paths: - - 'scripts/requirements*.txt' - - '.github/workflows/validate-pip-requirements-fixed-file.yml' - - -jobs: - check-requirements: - runs-on: ubuntu-24.04 - steps: - - name: Checkout sources - uses: nrfconnect/action-checkout-west-update@main - with: - west-update-args: '--narrow mcuboot zephyr' - - - name: Get python version - id: pyv - run: | - sudo snap install --channel=v4 yq - PYTHON_VERSION=$(yq '.python.version' ./ncs/nrf/scripts/tools-versions-linux.yml) - echo "python_version=$PYTHON_VERSION" >> $GITHUB_OUTPUT - - - name: Setup python version - uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5 - with: - python-version: '${{ steps.pyv.outputs.python_version }}' - - - name: Setup environment - working-directory: ncs - run: | - pip3 install --user -U setuptools wheel pip virtualenv virtualenvwrapper - - - name: Execute script diff action - uses: nrfconnect/action-script-diff@v0.3 - with: - diff_file: "ncs/nrf/scripts/requirements-fixed.txt" - script_call: | - cd ncs - OUT_FILE="nrf/scripts/requirements-fixed.txt" - echo "Writing frozen requirements to: $OUT_FILE" - echo "Log python version: $(python --version)" - - TOPDIR=$(west topdir) - cd $TOPDIR - - source ~/.local/bin/virtualenvwrapper.sh - [[ $? != 0 ]] && echo "error sourcing virtualenvwrapper" && exit 1 - - rmvirtualenv pip-fixed-venv > /dev/null 2>&1 - # We need to force the result of the following command. - # For no aparent reason it returns 1 with the same output as local. - mkvirtualenv pip-fixed-venv > /dev/null 2>&1 || true - workon pip-fixed-venv > /dev/null 2>&1 - - pip3 install \ - --index-url https://files.nordicsemi.com/artifactory/api/pypi/nordic-pypi/simple \ - pip-compile-cross-platform==1.4.2+nordic.3 --upgrade > /dev/null 2>&1 - pip-compile-cross-platform \ - bootloader/mcuboot/scripts/requirements.txt \ - zephyr/scripts/requirements.txt \ - nrf/scripts/requirements-west-ncs-sbom.txt \ - nrf/scripts/requirements-ci.txt \ - nrf/scripts/requirements-extra.txt \ - nrf/scripts/requirements.txt \ - --output-file nrf/scripts/requirements-fixed.txt \ - --min-python-version 3.12 \ - --index-url https://files.nordicsemi.com/artifactory/api/pypi/nordic-pypi/simple - - deactivate - rmvirtualenv pip-fixed-venv diff --git a/.github/workflows/west-commands.yml b/.github/workflows/west-commands.yml deleted file mode 100644 index 23e2075c96b6..000000000000 --- a/.github/workflows/west-commands.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: NCS west commands - -on: - pull_request: - branches: [main] - paths: - - scripts/west_commands/** - - scripts/requirements-west-ncs-sbom.txt - - scripts/requirements-extra.txt - -jobs: - west_commands_job: - runs-on: ubuntu-24.04 - name: Run Python checks for west commands on patch series (PR) - steps: - - name: Checkout the code - uses: nrfconnect/action-checkout-west-update@main - with: - path: ncs/nrf - git-fetch-depth: 0 - - name: Install python dependencies - working-directory: ncs/nrf - run: | - pip3 install -U pip - pip3 install -U setuptools - pip3 install -U wheel - pip3 install -U mypy types-colorama types-editdistance types-PyYAML - grep -E "west==" scripts/requirements-fixed.txt | cut -f1 -d"#" | cut -d ' ' -f '1'| xargs pip3 install -U - pip3 show -f west - - name: Run mypy - working-directory: ncs/nrf/scripts/west_commands - run: | - python3 -m mypy --config-file mypy.ini ncs_west_helpers.py pygit2_helpers.py ncs_commands.py - - run-west-cmds: - name: Run smoke tests for ncs west commands - strategy: - fail-fast: false - matrix: - os: [ubuntu-24.04, macos-13, windows-latest] - runs-on: ${{ matrix.os }} - steps: - - name: Checkout sources - uses: nrfconnect/action-checkout-west-update@main - with: - git-fetch-depth: 0 - path: nrf - - name: Install requirements - shell: bash - run: | - python3 -m pip install -U pip - pip3 install -r nrf/scripts/requirements-west-ncs-sbom.txt - pip3 install -r nrf/scripts/requirements-extra.txt - - name: Smoke test ncs-loot & ncs-compare - shell: bash - run: | - west ncs-loot -h - west ncs-compare -h diff --git a/CODEOWNERS b/CODEOWNERS index 7c3edfc35e75..b85950195a3c 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -23,7 +23,7 @@ # Dot folders /.github/ @nrfconnect/ncs-ci -/.github/test-spec.yml @nrfconnect/ncs-test-leads +# /.github/test-spec.yml @nrfconnect/ncs-test-leads /.vscode/ @kylebonnici # Applications diff --git a/samples/matter/common/src/certification/thread_platform/overlay-thread_platform.conf b/samples/matter/common/src/certification/thread_platform/overlay-thread_platform.conf index 02ba2d09727c..e73212322527 100644 --- a/samples/matter/common/src/certification/thread_platform/overlay-thread_platform.conf +++ b/samples/matter/common/src/certification/thread_platform/overlay-thread_platform.conf @@ -25,6 +25,7 @@ CONFIG_CHIP_DEVICE_VENDOR_ID=4735 CONFIG_CHIP_DEVICE_PRODUCT_ID=784 CONFIG_CHIP_DEVICE_VENDOR_NAME="Nordic Semiconductor" CONFIG_CHIP_DEVICE_PRODUCT_NAME="nRFConnect SDK Platform" +CONFIG_CHIP_MALLOC_SYS_HEAP_WATERMARKS_SUPPORT=y CONFIG_CHIP_FACTORY_DATA_CERT_SOURCE_USER=y CONFIG_CHIP_FACTORY_DATA_USER_CERTS_DAC_CERT="${ZEPHYR_NRF_MODULE_DIR}/samples/matter/common/src/certification/certs/dac_cert.der" diff --git a/samples/matter/common/src/certification/thread_platform/thread_certification.matter b/samples/matter/common/src/certification/thread_platform/thread_certification.matter index 79831a761776..4ad6b1ace852 100644 --- a/samples/matter/common/src/certification/thread_platform/thread_certification.matter +++ b/samples/matter/common/src/certification/thread_platform/thread_certification.matter @@ -2359,13 +2359,17 @@ endpoint 0 { } server cluster SoftwareDiagnostics { + callback attribute threadMetrics; callback attribute currentHeapFree; callback attribute currentHeapUsed; + callback attribute currentHeapHighWatermark; callback attribute generatedCommandList; callback attribute acceptedCommandList; callback attribute attributeList; callback attribute featureMap; callback attribute clusterRevision; + + handle command ResetWatermarks; } server cluster ThreadNetworkDiagnostics { diff --git a/samples/matter/common/src/certification/thread_platform/thread_certification.zap b/samples/matter/common/src/certification/thread_platform/thread_certification.zap index c801efe0ef00..91b08a8ad438 100644 --- a/samples/matter/common/src/certification/thread_platform/thread_certification.zap +++ b/samples/matter/common/src/certification/thread_platform/thread_certification.zap @@ -2141,7 +2141,33 @@ "define": "SOFTWARE_DIAGNOSTICS_CLUSTER", "side": "server", "enabled": 1, + "commands": [ + { + "name": "ResetWatermarks", + "code": 0, + "mfgCode": null, + "source": "client", + "isIncoming": 1, + "isEnabled": 1 + } + ], "attributes": [ + { + "name": "ThreadMetrics", + "code": 0, + "mfgCode": null, + "side": "server", + "type": "array", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "CurrentHeapFree", "code": 1, @@ -2174,6 +2200,22 @@ "maxInterval": 65534, "reportableChange": 0 }, + { + "name": "CurrentHeapHighWatermark", + "code": 3, + "mfgCode": null, + "side": "server", + "type": "int64u", + "included": 1, + "storageOption": "External", + "singleton": 0, + "bounded": 0, + "defaultValue": "", + "reportable": 1, + "minInterval": 1, + "maxInterval": 65534, + "reportableChange": 0 + }, { "name": "GeneratedCommandList", "code": 65528, diff --git a/samples/matter/common/src/certification/thread_platform/zap-generated/access.h b/samples/matter/common/src/certification/thread_platform/zap-generated/access.h index 66ae433ec294..4782be16827c 100644 --- a/samples/matter/common/src/certification/thread_platform/zap-generated/access.h +++ b/samples/matter/common/src/certification/thread_platform/zap-generated/access.h @@ -147,6 +147,7 @@ 0x00000031, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ 0x00000031, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ 0x00000033, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \ + 0x00000034, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \ 0x00000035, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \ 0x00000038, /* Cluster: Time Synchronization, Command: SetUTCTime, Privilege: administer */ \ 0x00000038, /* Cluster: Time Synchronization, Command: SetTrustedTimeSource, Privilege: administer */ \ @@ -191,6 +192,7 @@ 0x00000006, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ 0x00000008, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ 0x00000000, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \ + 0x00000000, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \ 0x00000000, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \ 0x00000000, /* Cluster: Time Synchronization, Command: SetUTCTime, Privilege: administer */ \ 0x00000001, /* Cluster: Time Synchronization, Command: SetTrustedTimeSource, Privilege: administer */ \ @@ -235,6 +237,7 @@ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ConnectNetwork, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Network Commissioning, Command: ReorderNetwork, Privilege: administer */ \ chip::Access::Privilege::kManage, /* Cluster: General Diagnostics, Command: TestEventTrigger, Privilege: manage */ \ + chip::Access::Privilege::kManage, /* Cluster: Software Diagnostics, Command: ResetWatermarks, Privilege: manage */ \ chip::Access::Privilege::kManage, /* Cluster: Thread Network Diagnostics, Command: ResetCounts, Privilege: manage */ \ chip::Access::Privilege::kAdminister, /* Cluster: Time Synchronization, Command: SetUTCTime, Privilege: administer */ \ chip::Access::Privilege::kAdminister, /* Cluster: Time Synchronization, Command: SetTrustedTimeSource, Privilege: administer */ \ diff --git a/samples/matter/common/src/certification/thread_platform/zap-generated/endpoint_config.h b/samples/matter/common/src/certification/thread_platform/zap-generated/endpoint_config.h index f28b8c5c1170..6906bae81f6f 100644 --- a/samples/matter/common/src/certification/thread_platform/zap-generated/endpoint_config.h +++ b/samples/matter/common/src/certification/thread_platform/zap-generated/endpoint_config.h @@ -59,7 +59,7 @@ } // This is an array of EmberAfAttributeMetadata structures. -#define GENERATED_ATTRIBUTE_COUNT 206 +#define GENERATED_ATTRIBUTE_COUNT 208 #define GENERATED_ATTRIBUTES \ { \ /* Endpoint: 0, Cluster: Descriptor (server) */ \ @@ -234,10 +234,14 @@ ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ClusterRevision */ \ \ /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \ + { ZAP_EMPTY_DEFAULT(), 0x00000000, 0, ZAP_TYPE(ARRAY), \ + ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* ThreadMetrics */ \ { ZAP_EMPTY_DEFAULT(), 0x00000001, 8, ZAP_TYPE(INT64U), \ ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentHeapFree */ \ { ZAP_EMPTY_DEFAULT(), 0x00000002, 8, ZAP_TYPE(INT64U), \ ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentHeapUsed */ \ + { ZAP_EMPTY_DEFAULT(), 0x00000003, 8, ZAP_TYPE(INT64U), \ + ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* CurrentHeapHighWatermark */ \ { ZAP_EMPTY_DEFAULT(), 0x0000FFFC, 4, ZAP_TYPE(BITMAP32), \ ZAP_ATTRIBUTE_MASK(EXTERNAL_STORAGE) }, /* FeatureMap */ \ { ZAP_EMPTY_DEFAULT(), 0x0000FFFD, 2, ZAP_TYPE(INT16U), \ @@ -594,28 +598,32 @@ /* GeneratedCommandList (index=27)*/ \ 0x00000002 /* TimeSnapshotResponse */, \ chip::kInvalidCommandId /* end of list */, \ - /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\ + /* Endpoint: 0, Cluster: Software Diagnostics (server) */\ /* AcceptedCommandList (index=29) */ \ + 0x00000000 /* ResetWatermarks */, \ + chip::kInvalidCommandId /* end of list */, \ + /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */\ + /* AcceptedCommandList (index=31) */ \ 0x00000000 /* ResetCounts */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 0, Cluster: Time Synchronization (server) */\ - /* AcceptedCommandList (index=31) */ \ + /* AcceptedCommandList (index=33) */ \ 0x00000000 /* SetUTCTime */, \ 0x00000001 /* SetTrustedTimeSource */, \ 0x00000002 /* SetTimeZone */, \ 0x00000004 /* SetDSTOffset */, \ chip::kInvalidCommandId /* end of list */, \ - /* GeneratedCommandList (index=36)*/ \ + /* GeneratedCommandList (index=38)*/ \ 0x00000003 /* SetTimeZoneResponse */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 0, Cluster: Administrator Commissioning (server) */\ - /* AcceptedCommandList (index=38) */ \ + /* AcceptedCommandList (index=40) */ \ 0x00000000 /* OpenCommissioningWindow */, \ 0x00000001 /* OpenBasicCommissioningWindow */, \ 0x00000002 /* RevokeCommissioning */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 0, Cluster: Operational Credentials (server) */\ - /* AcceptedCommandList (index=42) */ \ + /* AcceptedCommandList (index=44) */ \ 0x00000000 /* AttestationRequest */, \ 0x00000002 /* CertificateChainRequest */, \ 0x00000004 /* CSRRequest */, \ @@ -627,7 +635,7 @@ 0x0000000C /* SetVIDVerificationStatement */, \ 0x0000000D /* SignVIDVerificationRequest */, \ chip::kInvalidCommandId /* end of list */, \ - /* GeneratedCommandList (index=53)*/ \ + /* GeneratedCommandList (index=55)*/ \ 0x00000001 /* AttestationResponse */, \ 0x00000003 /* CertificateChainResponse */, \ 0x00000005 /* CSRResponse */, \ @@ -635,33 +643,33 @@ 0x0000000E /* SignVIDVerificationResponse */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 0, Cluster: Group Key Management (server) */\ - /* AcceptedCommandList (index=59) */ \ + /* AcceptedCommandList (index=61) */ \ 0x00000000 /* KeySetWrite */, \ 0x00000001 /* KeySetRead */, \ 0x00000003 /* KeySetRemove */, \ 0x00000004 /* KeySetReadAllIndices */, \ chip::kInvalidCommandId /* end of list */, \ - /* GeneratedCommandList (index=64)*/ \ + /* GeneratedCommandList (index=66)*/ \ 0x00000002 /* KeySetReadResponse */, \ 0x00000005 /* KeySetReadAllIndicesResponse */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 0, Cluster: ICD Management (server) */\ - /* AcceptedCommandList (index=67) */ \ + /* AcceptedCommandList (index=69) */ \ 0x00000000 /* RegisterClient */, \ 0x00000002 /* UnregisterClient */, \ 0x00000003 /* StayActiveRequest */, \ chip::kInvalidCommandId /* end of list */, \ - /* GeneratedCommandList (index=71)*/ \ + /* GeneratedCommandList (index=73)*/ \ 0x00000001 /* RegisterClientResponse */, \ 0x00000004 /* StayActiveResponse */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 1, Cluster: Identify (server) */\ - /* AcceptedCommandList (index=74) */ \ + /* AcceptedCommandList (index=76) */ \ 0x00000000 /* Identify */, \ 0x00000040 /* TriggerEffect */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 1, Cluster: Groups (server) */\ - /* AcceptedCommandList (index=77) */ \ + /* AcceptedCommandList (index=79) */ \ 0x00000000 /* AddGroup */, \ 0x00000001 /* ViewGroup */, \ 0x00000002 /* GetGroupMembership */, \ @@ -669,14 +677,14 @@ 0x00000004 /* RemoveAllGroups */, \ 0x00000005 /* AddGroupIfIdentifying */, \ chip::kInvalidCommandId /* end of list */, \ - /* GeneratedCommandList (index=84)*/ \ + /* GeneratedCommandList (index=86)*/ \ 0x00000000 /* AddGroupResponse */, \ 0x00000001 /* ViewGroupResponse */, \ 0x00000002 /* GetGroupMembershipResponse */, \ 0x00000003 /* RemoveGroupResponse */, \ chip::kInvalidCommandId /* end of list */, \ /* Endpoint: 1, Cluster: On/Off (server) */\ - /* AcceptedCommandList (index=89) */ \ + /* AcceptedCommandList (index=91) */ \ 0x00000000 /* Off */, \ 0x00000001 /* On */, \ 0x00000002 /* Toggle */, \ @@ -839,11 +847,11 @@ /* Endpoint: 0, Cluster: Software Diagnostics (server) */ \ .clusterId = 0x00000034, \ .attributes = ZAP_ATTRIBUTE_INDEX(75), \ - .attributeCount = 4, \ + .attributeCount = 6, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = nullptr, \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 29 ), \ .generatedCommandList = nullptr, \ .eventList = nullptr, \ .eventCount = 0, \ @@ -851,12 +859,12 @@ { \ /* Endpoint: 0, Cluster: Thread Network Diagnostics (server) */ \ .clusterId = 0x00000035, \ - .attributes = ZAP_ATTRIBUTE_INDEX(79), \ + .attributes = ZAP_ATTRIBUTE_INDEX(81), \ .attributeCount = 65, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 29 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 31 ), \ .generatedCommandList = nullptr, \ .eventList = nullptr, \ .eventCount = 0, \ @@ -864,25 +872,25 @@ { \ /* Endpoint: 0, Cluster: Time Synchronization (server) */ \ .clusterId = 0x00000038, \ - .attributes = ZAP_ATTRIBUTE_INDEX(144), \ + .attributes = ZAP_ATTRIBUTE_INDEX(146), \ .attributeCount = 11, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 31 ), \ - .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 36 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 33 ), \ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 38 ), \ .eventList = nullptr, \ .eventCount = 0, \ },\ { \ /* Endpoint: 0, Cluster: Administrator Commissioning (server) */ \ .clusterId = 0x0000003C, \ - .attributes = ZAP_ATTRIBUTE_INDEX(155), \ + .attributes = ZAP_ATTRIBUTE_INDEX(157), \ .attributeCount = 5, \ .clusterSize = 4, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 38 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 40 ), \ .generatedCommandList = nullptr, \ .eventList = nullptr, \ .eventCount = 0, \ @@ -890,51 +898,51 @@ { \ /* Endpoint: 0, Cluster: Operational Credentials (server) */ \ .clusterId = 0x0000003E, \ - .attributes = ZAP_ATTRIBUTE_INDEX(160), \ + .attributes = ZAP_ATTRIBUTE_INDEX(162), \ .attributeCount = 8, \ .clusterSize = 6, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 42 ), \ - .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 53 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 44 ), \ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 55 ), \ .eventList = nullptr, \ .eventCount = 0, \ },\ { \ /* Endpoint: 0, Cluster: Group Key Management (server) */ \ .clusterId = 0x0000003F, \ - .attributes = ZAP_ATTRIBUTE_INDEX(168), \ + .attributes = ZAP_ATTRIBUTE_INDEX(170), \ .attributeCount = 6, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 59 ), \ - .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 64 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 61 ), \ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 66 ), \ .eventList = nullptr, \ .eventCount = 0, \ },\ { \ /* Endpoint: 0, Cluster: ICD Management (server) */ \ .clusterId = 0x00000046, \ - .attributes = ZAP_ATTRIBUTE_INDEX(174), \ + .attributes = ZAP_ATTRIBUTE_INDEX(176), \ .attributeCount = 12, \ .clusterSize = 135, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ .functions = NULL, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 67 ), \ - .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 71 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 69 ), \ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 73 ), \ .eventList = nullptr, \ .eventCount = 0, \ },\ { \ /* Endpoint: 1, Cluster: Identify (server) */ \ .clusterId = 0x00000003, \ - .attributes = ZAP_ATTRIBUTE_INDEX(186), \ + .attributes = ZAP_ATTRIBUTE_INDEX(188), \ .attributeCount = 4, \ .clusterSize = 9, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(ATTRIBUTE_CHANGED_FUNCTION), \ .functions = chipFuncArrayIdentifyServer, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 74 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 76 ), \ .generatedCommandList = nullptr, \ .eventList = nullptr, \ .eventCount = 0, \ @@ -942,25 +950,25 @@ { \ /* Endpoint: 1, Cluster: Groups (server) */ \ .clusterId = 0x00000004, \ - .attributes = ZAP_ATTRIBUTE_INDEX(190), \ + .attributes = ZAP_ATTRIBUTE_INDEX(192), \ .attributeCount = 3, \ .clusterSize = 7, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION), \ .functions = chipFuncArrayGroupsServer, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 77 ), \ - .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 84 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 79 ), \ + .generatedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 86 ), \ .eventList = nullptr, \ .eventCount = 0, \ },\ { \ /* Endpoint: 1, Cluster: On/Off (server) */ \ .clusterId = 0x00000006, \ - .attributes = ZAP_ATTRIBUTE_INDEX(193), \ + .attributes = ZAP_ATTRIBUTE_INDEX(195), \ .attributeCount = 7, \ .clusterSize = 13, \ .mask = ZAP_CLUSTER_MASK(SERVER) | ZAP_CLUSTER_MASK(INIT_FUNCTION) | ZAP_CLUSTER_MASK(SHUTDOWN_FUNCTION), \ .functions = chipFuncArrayOnOffServer, \ - .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 89 ), \ + .acceptedCommandList = ZAP_GENERATED_COMMANDS_INDEX( 91 ), \ .generatedCommandList = nullptr, \ .eventList = nullptr, \ .eventCount = 0, \ @@ -968,7 +976,7 @@ { \ /* Endpoint: 1, Cluster: Descriptor (server) */ \ .clusterId = 0x0000001D, \ - .attributes = ZAP_ATTRIBUTE_INDEX(200), \ + .attributes = ZAP_ATTRIBUTE_INDEX(202), \ .attributeCount = 6, \ .clusterSize = 0, \ .mask = ZAP_CLUSTER_MASK(SERVER), \ diff --git a/samples/matter/common/src/certification/thread_platform/zap-generated/gen_config.h b/samples/matter/common/src/certification/thread_platform/zap-generated/gen_config.h index 8324580a9d00..e4da3bc82dd5 100644 --- a/samples/matter/common/src/certification/thread_platform/zap-generated/gen_config.h +++ b/samples/matter/common/src/certification/thread_platform/zap-generated/gen_config.h @@ -480,6 +480,9 @@ #define OPERATIONAL_CREDENTIALS_ENABLE_SET_VID_VERIFICATION_STATEMENT_CMD 1 #define OPERATIONAL_CREDENTIALS_ENABLE_SIGN_VID_VERIFICATION_REQUEST_CMD 1 +// SoftwareDiagnostics Cluster Commands +#define SOFTWARE_DIAGNOSTICS_ENABLE_RESET_WATERMARKS_CMD 1 + // ThreadNetworkDiagnostics Cluster Commands #define THREAD_NETWORK_DIAGNOSTICS_ENABLE_RESET_COUNTS_CMD 1 diff --git a/samples/matter/common/src/event_triggers/default_event_triggers.cpp b/samples/matter/common/src/event_triggers/default_event_triggers.cpp index 4e50ca2bf334..8cffca5b2ad7 100644 --- a/samples/matter/common/src/event_triggers/default_event_triggers.cpp +++ b/samples/matter/common/src/event_triggers/default_event_triggers.cpp @@ -265,6 +265,11 @@ CHIP_ERROR Register() #endif /* CONFIG_NCS_SAMPLE_MATTER_DIAGNOSTIC_LOGS_CRASH_LOGS */ #endif /* CONFIG_NCS_SAMPLE_MATTER_DIAGNOSTIC_LOGS_TEST */ +#ifdef CONFIG_CHIP_ENABLE_ICD_SUPPORT + /* Register ICD test event triggers */ + ReturnErrorOnFailure(Nrf::Matter::TestEventTrigger::Instance().RegisterICDTestEventTriggers()); +#endif + /* Register OTA test events handler */ static chip::OTATestEventTriggerHandler otaTestEventTrigger; ReturnErrorOnFailure( diff --git a/samples/matter/common/src/event_triggers/event_triggers.cpp b/samples/matter/common/src/event_triggers/event_triggers.cpp index 83e2dd431db6..e7537df30c33 100644 --- a/samples/matter/common/src/event_triggers/event_triggers.cpp +++ b/samples/matter/common/src/event_triggers/event_triggers.cpp @@ -8,11 +8,39 @@ #include +/* Server used only for getting the ICDManager instance */ +#ifdef CONFIG_CHIP_ENABLE_ICD_SUPPORT +#include +#endif + LOG_MODULE_DECLARE(app, CONFIG_CHIP_APP_LOG_LEVEL); using namespace Nrf::Matter; using namespace chip; +#ifdef CONFIG_CHIP_ENABLE_ICD_SUPPORT +CHIP_ERROR TestEventTrigger::RegisterICDTestEventTriggers() +{ + /* + * Register ICDManager as a test event trigger handler. + * This reuses the existing HandleEventTrigger implementation in ICDManager.cpp + * which already handles all ICD test event triggers including: + * - Active mode management (add/remove active mode requirements) + * - Check-in counter operations (invalidate half/all counter values) + * - DSLS (Dynamic SIT/LIT Support) mode changes + * - Force maximum check-in backoff state + */ + CHIP_ERROR err = RegisterTestEventTriggerHandler(&chip::Server::GetInstance().GetICDManager()); + if (err != CHIP_NO_ERROR) { + LOG_ERR("Failed to register ICDManager as test event trigger handler: %" CHIP_ERROR_FORMAT, err.Format()); + return err; + } + + LOG_INF("Successfully registered ICDManager as test event trigger handler"); + return CHIP_NO_ERROR; +} +#endif + CHIP_ERROR TestEventTrigger::RegisterTestEventTrigger(EventTriggerId id, EventTrigger trigger) { VerifyOrReturnError(trigger.Callback != nullptr, CHIP_ERROR_INVALID_ARGUMENT); diff --git a/samples/matter/common/src/event_triggers/event_triggers.h b/samples/matter/common/src/event_triggers/event_triggers.h index 587f59021ce1..04f680cd5c1a 100644 --- a/samples/matter/common/src/event_triggers/event_triggers.h +++ b/samples/matter/common/src/event_triggers/event_triggers.h @@ -102,6 +102,18 @@ class TestEventTrigger : public chip::TestEventTriggerDelegate { */ CHIP_ERROR RegisterTestEventTriggerHandler(chip::TestEventTriggerHandler *triggerDelegate); +#ifdef CONFIG_CHIP_ENABLE_ICD_SUPPORT + /** + * @brief Register all ICD test event triggers + * + * This function registers all the ICD test event triggers defined in ICDManager.cpp + * including active mode requests, counter invalidation, and DSLS mode changes. + * + * @return CHIP_NO_ERROR on success, or appropriate error code on failure. + */ + CHIP_ERROR RegisterICDTestEventTriggers(); +#endif + /** * @brief Set the new Enable Key read out from an external source. *