diff --git a/.gitlab/ci/test-win.yml b/.gitlab/ci/test-win.yml index 42e2446933..3b8d3d1807 100644 --- a/.gitlab/ci/test-win.yml +++ b/.gitlab/ci/test-win.yml @@ -29,6 +29,7 @@ test_cli_installer_win: expire_in: 1 week variables: IDF_PATH: "$CI_PROJECT_DIR" + timeout: 3h script: # Tools must be downloaded for testing - python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake diff --git a/tools/idf_py_actions/create_ext.py b/tools/idf_py_actions/create_ext.py index 3d97147854..9634bd8ccc 100644 --- a/tools/idf_py_actions/create_ext.py +++ b/tools/idf_py_actions/create_ext.py @@ -1,9 +1,9 @@ -# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD +# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 import os import re import sys -from shutil import copy +from shutil import copyfile from shutil import copytree from typing import Dict @@ -42,7 +42,8 @@ def create_project(target_path: str, name: str) -> None: copytree( os.path.join(os.environ['IDF_PATH'], 'tools', 'templates', 'sample_project'), target_path, - copy_function=copy, + # 'copyfile' ensures only data are copied, without any metadata (file permissions) + copy_function=copyfile, dirs_exist_ok=True, ) main_folder = os.path.join(target_path, 'main') @@ -55,7 +56,8 @@ def create_component(target_path: str, name: str) -> None: copytree( os.path.join(os.environ['IDF_PATH'], 'tools', 'templates', 'sample_component'), target_path, - copy_function=copy, + # 'copyfile' ensures only data are copied, without any metadata (file permissions) + copy_function=copyfile, dirs_exist_ok=True, ) os.rename(os.path.join(target_path, 'main.c'), os.path.join(target_path, '.'.join((name, 'c')))) diff --git a/tools/test_idf_tools/test_idf_tools.py b/tools/test_idf_tools/test_idf_tools.py index 87eab1dee0..00a82635d3 100755 --- a/tools/test_idf_tools/test_idf_tools.py +++ b/tools/test_idf_tools/test_idf_tools.py @@ -322,8 +322,9 @@ class TestUsage(TestUsageBase): self.run_idf_tools_with_action(['install', OPENOCD]) output = self.run_idf_tools_with_action(['export']) - self.assertIn('%s/tools/openocd-esp32/%s/openocd-esp32/bin' % - (self.temp_tools_dir, OPENOCD_VERSION), output) + self.assertIn(os.path.join( + self.temp_tools_dir, 'tools', 'openocd-esp32', OPENOCD_VERSION, 'openocd-esp32', 'bin' + ), output) # TestUsageUnix tests installed tools on UNIX platforms