12 - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
13 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
14 - chmod 600 ~/.ssh/id_rsa
15 - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
17 # if testing master branch, use github wifi and bt libs.
18 # if testing other branches, use gitlab wifi and bt libs (as maybe changes aren't merged to master yet)
19 - test "${CI_BUILD_REF_NAME}" = "master" || sed -i "s%https://github.com/espressif/esp32-wifi-lib%${GITLAB_SSH_SERVER}/idf/esp32-wifi-lib%" .gitmodules
20 - test "${CI_BUILD_REF_NAME}" = "master" || sed -i "s%https://github.com/espressif/esp32-bt-lib%${GITLAB_SSH_SERVER}/idf/esp32-bt-lib%" .gitmodules
21 # fetch all submodules
22 - git submodule update --init --recursive
26 image: espressif/esp32-ci-env
31 SDK_PATH: "$CI_PROJECT_DIR"
32 IDF_PATH: "$CI_PROJECT_DIR"
36 - git clone https://github.com/espressif/esp-idf-template.git
38 # Try to use the same branch name for esp-idf-template that we're
39 # using on esp-idf. If it doesn't exist then just stick to the default
41 - git checkout ${CI_BUILD_REF_NAME} || echo "Using esp-idf-template default branch..."
43 # Test debug build (default)
45 # Now test release build
47 - sed -i.bak -e's/CONFIG_OPTIMIZATION_LEVEL_DEBUG\=y/CONFIG_OPTIMIZATION_LEVEL_RELEASE=y/' sdkconfig
50 # Check if there are any stray printf/ets_printf references in WiFi libs
51 - cd ../components/esp32/lib
52 - test $(xtensa-esp32-elf-nm *.a | grep -w printf | wc -l) -eq 0
53 - test $(xtensa-esp32-elf-nm *.a | grep -w ets_printf | wc -l) -eq 0
56 .build_gitlab: &build_template
60 image: espressif/esp32-ci-env
63 SDK_PATH: "$CI_PROJECT_DIR"
64 IDF_PATH: "$CI_PROJECT_DIR"
75 - git clone $GITLAB_SSH_SERVER/yinling/SSC.git
77 - git checkout ${CI_BUILD_REF_NAME} || echo "Using SSC default branch..."
79 - chmod +x gen_misc_ng.sh
86 - ./tools/unit-test-app/build/*.bin
87 - ./tools/unit-test-app/build/*.elf
88 - ./tools/unit-test-app/build/*.map
89 - ./tools/unit-test-app/build/bootloader/*.bin
93 - cd tools/unit-test-app
94 - git checkout ${CI_BUILD_REF_NAME} || echo "Using default branch..."
102 - build_examples/*/*/build/*.bin
103 - build_examples/*/*/build/*.elf
104 - build_examples/*/*/build/*.map
105 - build_examples/*/*/build/bootloader/*.bin
109 # it's not possible to build 100% out-of-tree and have the "artifacts"
110 # mechanism work, but this is the next best thing
111 - mkdir build_examples
113 - ${IDF_PATH}/make/build_examples.sh
117 image: espressif/esp32-ci-env
123 # If not building master branch, and there are Doxygen warnings, print them and bail out
124 - test "${CI_BUILD_REF_NAME}" = "master" || test $(cat doxygen-warning-log.txt | wc -l) -eq 0 || ( echo "Doxygen pass had some warnings:" && cat doxygen-warning-log.txt && false )
134 image: espressif/esp32-ci-env
138 - cd components/nvs_flash/test_nvs_host
143 image: espressif/esp32-ci-env
147 IDF_PATH: "$CI_PROJECT_DIR"
149 - ./make/test_build_system.sh
159 LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF"
160 TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test"
161 REPORT_PATH: "$CI_PROJECT_DIR/CI_Test_Report"
170 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git
171 - cd auto_test_script
173 - python CITestReport.py -l $LOG_PATH -t $TEST_CASE_FILE_PATH -p $REPORT_PATH
176 push_master_to_github:
178 - echo "Not setting up GitLab key, not fetching submodules"
185 image: espressif/esp32-ci-env
191 - echo -n $GH_PUSH_KEY > ~/.ssh/id_rsa_base64
192 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
193 - chmod 600 ~/.ssh/id_rsa
194 - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
195 - git remote add github git@github.com:espressif/esp-idf.git
196 - git push --follow-tags github HEAD:master
201 - echo "Not setting up GitLab key, not fetching submodules"
208 image: espressif/esp32-ci-env
212 - echo -n $DOCS_DEPLOY_KEY > ~/.ssh/id_rsa_base64
213 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
214 - chmod 600 ~/.ssh/id_rsa
215 - echo -e "Host $DOCS_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_SERVER_USER\n" >> ~/.ssh/config
216 - export GIT_VER=$(git describe --always)
219 - tar czvf $GIT_VER.tar.gz $GIT_VER
220 - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH
221 - ssh $DOCS_SERVER -x "cd $DOCS_PATH && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
224 # AUTO GENERATED PART START, DO NOT MODIFY CONTENT BELOW
225 # template for test jobs
226 .test_template: &test_template
235 # LOCAL_ENV_CONFIG_PATH: define in template and jobs can overwrite if required
236 LOCAL_ENV_CONFIG_PATH: /home/gitlab-runner/LocalConfig/ESP32_IDF
237 BIN_PATH: "$CI_PROJECT_DIR/SSC/ssc_bin/SSC"
239 LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF"
240 # append test level folder to TEST_CASE_FILE_PATH in before_script of test job
241 TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test/integration_test"
242 # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary
251 # remove artifacts from last stage (UT logs)
256 - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
257 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
258 - chmod 600 ~/.ssh/id_rsa
259 - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
261 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git
262 - cd auto_test_script
264 - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH
267 # template for overnight test jobs
268 .test_template_night: &test_template_night
271 # can only be triggered
274 # remove artifacts from last stage (UT logs)
276 # must be night build triggers, otherwise exit without test
277 - test $NIGHT_BUILD = "Yes" || exit 0
281 - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
282 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
283 - chmod 600 ~/.ssh/id_rsa
284 - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
286 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git
287 - cd auto_test_script
289 - python CIRunner.py -l $LOG_PATH -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH bin_path $APP_NAME $BIN_PATH
291 # template for unit test jobs
292 .unit_test_template: &unit_test_template
298 # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary
299 LOCAL_ENV_CONFIG_PATH: /home/gitlab-runner/LocalConfig/ESP32_IDF
300 BIN_PATH: "$CI_PROJECT_DIR/tools/unit-test-app/build/"
301 LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF"
303 TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test/unit_test"
306 <<: *unit_test_template
311 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/UT_Function_SYS_01.yml
319 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_SYS_01.yml
328 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_01.yml
337 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_02.yml
339 IT_Function_TCPIP_01:
346 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_01.yml
348 IT_Function_TCPIP_02:
354 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_02.yml
356 IT_Function_TCPIP_03:
363 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_03.yml
365 IT_Function_TCPIP_04:
372 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_04.yml
374 IT_Function_TCPIP_05:
380 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_05.yml
383 <<: *test_template_night
388 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stress_WIFI_01.yml
391 <<: *test_template_night
396 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stress_TCPIP_01.yml
399 <<: *test_template_night
404 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stress_TCPIP_02.yml
407 <<: *test_template_night
412 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stress_TCPIP_03.yml
415 <<: *test_template_night
420 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stress_TCPIP_04.yml
423 <<: *test_template_night
428 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stable_TCPIP_01.yml
431 <<: *test_template_night
436 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stable_TCPIP_02.yml
439 <<: *test_template_night
444 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Stable_TCPIP_03.yml
446 IT_Function_TCPIP_06:
447 <<: *test_template_night
452 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_06.yml
460 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_03.yml
468 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_04.yml
476 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_05.yml
484 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_06.yml
486 IT_Function_TCPIP_07:
493 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_07.yml
495 IT_Function_TCPIP_08:
502 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_08.yml
504 IT_Function_TCPIP_09:
511 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_09.yml
513 IT_Function_TCPIP_10:
520 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_10.yml
522 IT_Function_TCPIP_11:
528 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_11.yml
530 IT_Function_TCPIP_12:
536 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_12.yml