ci(fix): integration test download test bin

pull/9151/merge
Chen Yudong 2023-10-24 16:52:47 +08:00
rodzic fa5c3bcd09
commit d0a79c9cc9
2 zmienionych plików z 1 dodań i 68 usunięć

Wyświetl plik

@ -816,7 +816,7 @@ component_ut_test_lan8720:
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/tools/ci/integration_test/test_configs"
KNOWN_ISSUE_FILE: "${CI_PROJECT_DIR}/tools/ci/integration_test/KnownIssues"
CI_RUNNER_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIRunner.py"
PREPARE_TEST_BIN_SCRIPT: "${CI_PROJECT_DIR}/tools/ci/integration_test/prepare_test_bins.py"
PREPARE_TEST_BIN_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/tools/ci/idf_prepare_test_bins.py"
PYTHONPATH: "${CI_PROJECT_DIR}/auto_test_script/packages:${CI_PROJECT_DIR}/tools/ci/python_packages:${PYTHONPATH}"
INITIAL_CONDITION_RETRY_COUNT: "1"
GIT_LFS_SKIP_SMUDGE: 1

Wyświetl plik

@ -1,67 +0,0 @@
#!/usr/bin/env python
#
# SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import argparse
import os
import gitlab
import gitlab_api
from AutoTestScript.RunnerConfigs.Config import Config
SSC_BUILD_JOB_MAP = {
'ESP32': 'build_ssc_esp32',
'ESP32C3': 'build_ssc_esp32c3',
}
NEEDED_FILES = [
'flasher_args.json',
'bootloader/bootloader.bin',
'partition_table/partition-table.bin',
'ssc.bin',
'ssc.elf',
]
IDF_PATH = os.environ.get('IDF_PATH')
def try_to_download_artifacts(bin_path: str) -> None:
'''
bin_path: "SSC/ssc_bin/ESP32[C3]/SSC[_APP]"
'''
project_id = os.getenv('CI_PROJECT_ID')
pipeline_id = os.getenv('CI_PIPELINE_ID')
gitlab_inst = gitlab_api.Gitlab(project_id)
build_job_name = SSC_BUILD_JOB_MAP[bin_path.split('/')[-2]]
job_list = gitlab_inst.find_job_id(build_job_name, pipeline_id=pipeline_id)
files_to_download = [os.path.join(bin_path, f) for f in NEEDED_FILES]
for job_info in job_list:
try:
gitlab_inst.download_artifact(job_info['id'], files_to_download, IDF_PATH)
print('Downloaded {} from {}'.format(bin_path, job_info['id']))
break
except gitlab.exceptions.GitlabError as e:
if e.response_code == 404:
continue
raise
def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument(
'test_config_file',
help='The test config file to be used.'
)
args = parser.parse_args()
configs = Config.parse(args.test_config_file)
test_bin_paths = configs.get_bin_paths()
for _path in test_bin_paths:
if os.path.exists(_path):
continue
relative_path = os.path.relpath(_path, IDF_PATH)
try_to_download_artifacts(relative_path)
if __name__ == '__main__':
main()