forked from espressif/esp-adf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild-ut.yml
131 lines (125 loc) · 4.8 KB
/
build-ut.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
.setup_tools_unless_target_test_v4.4:
script: |
if [[ "$SETUP_TOOLS" == "1" || "$CI_JOB_STAGE" != "target_test" ]]; then
$IDF_PATH/tools/idf_tools.py --non-interactive install && eval "$($IDF_PATH/tools/idf_tools.py --non-interactive export)" || exit 1
fi
.pull_adf_libs_ut_repo: &pull_adf_libs_ut_repo |
echo "current path:"$(pwd)
cd $ADF_PATH/..
if [[ -d "$ADF_PATH/../adf-libs-ut/" ]]; then
rm -rf $ADF_PATH/../adf-libs-ut/
fi
git clone ${GITLAB_SSH_SERVER}/adf/adf-libs-ut.git
cd -
.build_ut_template: &build_ut_template
stage: build
tags:
- adf_build
variables:
BATCH_BUILD: "1"
V: "0"
interruptible: true
when: always
.build_esp_adf_unit_test_v44_template: &build_esp_adf_unit_test_v44_template
image: $ADF_DOCKER_REGISTRY/env_v4.4:2
<<: *build_ut_template
.add_adf_components_to_ut_v44_make_build: &add_adf_components_to_ut_v44_make_build
- cd $ADF_PATH/../adf-libs-ut
- export ADF_UT=$(pwd)
- cd $ADF_PATH
- sed -i '/EXTRA_COMPONENT_DIRS += \$(ADF_PATH)\/components\//a\EXTRA_COMPONENT_DIRS += $(ADF_UT)/esp_audio' project.mk
- cd $IDF_PATH
- git clean -f
- git checkout ${IDF_VERSION}
- rm -rf $IDF_PATH/components/mqtt/esp-mqtt
- git submodule update --init --recursive --depth 1
- source $IDF_PATH/tools/ci/configure_ci_environment.sh
- !reference [.setup_tools_unless_target_test_v4.4, script]
- git apply $ADF_PATH/idf_patches/idf_v4.4_freertos.patch
- cd $IDF_PATH/tools/unit-test-app
- cp $ADF_UT/sdkconfig_v44.defaults ./sdkconfig.defaults
- rm -rf $IDF_PATH/tools/ci
- cp -rf $ADF_UT/ci $IDF_PATH/tools
- sed -i "s%include \$(IDF_PATH)\/make\/project.mk%include \$(ADF_PATH)\/project.mk%g" Makefile
.build_esp_adf_tests_v44_make:
<<: *build_esp_adf_unit_test_v44_template
artifacts:
paths:
- $IDF_PATH/components/idf_test/unit_test/TestCaseAll.yml
- $IDF_PATH/tools/unit-test-app/
- $IDF_PATH/tools/unit-test-app/sdkconfig
- $IDF_PATH/tools/unit-test-app/output
- $IDF_PATH/tools/unit-test-app/build/*.elf
- $IDF_PATH/tools/unit-test-app/build/*.map
- $IDF_PATH/tools/unit-test-app/build/*.bin
- $IDF_PATH/tools/unit-test-app/build/download.config
- $IDF_PATH/tools/unit-test-app/build/bootloader/*
- $IDF_PATH/tools/unit-test-app/partition_table_unit_test_app.csv
- $IDF_PATH/tools/tiny-test-fw/
- $IDF_PATH/tools/ci
- $IDF_PATH/components/partition_table/
- $IDF_PATH/components/esptool_py/esptool/
expire_in: 4 days
dependencies: []
variables:
LOG_PATH: "$CI_PROJECT_DIR/log_ut_make"
OUTPUT_PATH: ${IDF_PATH}/tools/unit-test-app/output
before_script:
- source $ADF_PATH/tools/ci/utils.sh
- add_gitlab_ssh_keys
- update_submodule_remote
- git submodule update --init;
- *pull_adf_libs_ut_repo
- source $ADF_PATH/tools/ci/switch_branch.sh
script:
- echo $PATH
- *add_adf_components_to_ut_v44_make_build
- MAKEFLAGS= make help # make sure kconfig tools are built in single process
- make clean
- make -j8 TEST_COMPONENTS="$ADF_UT/esp_audio"
- make print_flash_cmd > build/download.config
- mkdir adf_configs
- mkdir output
- mkdir output/default
- mkdir $IDF_PATH/components/idf_test/unit_test
- cp configs/default adf_configs/
- cp -ar adf_configs $ADF_UT
- if [ ! -d $ADF_UT/adf_configs ]; then echo -e "\e[33m WARNING, adf_configs folder missing \e[0m";fi
- cp sdkconfig output/default/
- cp -ar build/*.bin output/default
- cp -ar build/*.elf output/default
- cp -ar build/*.map output/default
- cp -ar build/bootloader output/default
- cp -r build $CI_PROJECT_DIR
- cd $IDF_PATH
- git checkout .
- git clean -f tools/ci/check-executable.sh
- rm -rf tools/ci/apply_bot_filter.py tools/ci/build_examples.sh tools/ci/build_examples_cmake.sh \
tools/ci/check-executable.sh tools/ci/check-line-endings.sh tools/ci/check_examples_cmake_make.sh
# use the 'tools/UnitTestParser.py' of release/v3.3 in order to generate 'idf_test/unit_test/TestCaseAll.yml'
- echo "The IDF branch is v3.3(722043f734)"
- git checkout 722043f734
- git submodule update --init --recursive --depth 1
- cd -
- pyenv install 2.7.15
- pyenv global 2.7.15
- pyenv rehash
- cd $IDF_PATH
- ./install.sh
- . ./export.sh
- cd -
- cp $CI_PROJECT_DIR/build $IDF_PATH/tools/unit-test-app -r
- cp -ar $ADF_UT/adf_configs $IDF_PATH/tools/unit-test-app
- cd $ADF_UT
- pip install netifaces pyyaml junit_xml
- python tools/UnitTestParser.py
- sed -i "23i\ - V44" $IDF_PATH/components/idf_test/unit_test/TestCaseAll.yml
build_make_ut_v4_4:
extends:
- .rules:build:unit-test
- .build_esp_adf_tests_v44_make
variables:
IDF_TAG_FLAG: "false"
IDF_VERSION_TAG: v4.4
IDF_TARGET: esp32
DEEP_CLONE: "true"