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 libs.
18 # if testing other branches, use gitlab wifi 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%ssh://git@gitlab.espressif.cn:27227/idf/esp32-wifi-lib%" .gitmodules
20 # fetch all submodules
21 - git submodule update --init --recursive
25 image: espressif/esp32-ci-env
30 SDK_PATH: "$CI_PROJECT_DIR"
31 IDF_PATH: "$CI_PROJECT_DIR"
35 - git clone https://github.com/espressif/esp-idf-template.git
37 # Try to use the same branch name for esp-idf-template that we're
38 # using on esp-idf. If it doesn't exist then just stick to the default
40 - git checkout ${CI_BUILD_REF_NAME} || echo "Using esp-idf-template default branch..."
42 # Test debug build (default)
44 # Now test release build
46 - sed -i.bak -e's/CONFIG_OPTIMIZATION_LEVEL_DEBUG\=y/CONFIG_OPTIMIZATION_LEVEL_RELEASE=y/' sdkconfig
51 .build_gitlab: &build_template
55 image: espressif/esp32-ci-env
58 SDK_PATH: "$CI_PROJECT_DIR"
59 IDF_PATH: "$CI_PROJECT_DIR"
70 - git clone $GITLAB_SSH_SERVER/yinling/SSC.git
72 - git checkout ${CI_BUILD_REF_NAME} || echo "Using SSC default branch..."
74 - chmod +x gen_misc_ng.sh
81 - ./esp-idf-tests/build/*.bin
82 - ./esp-idf-tests/build/*.elf
83 - ./esp-idf-tests/build/*.map
84 - ./esp-idf-tests/build/bootloader/*.bin
88 - git clone $GITLAB_SSH_SERVER/idf/esp-idf-tests.git
90 - git checkout ${CI_BUILD_REF_NAME} || echo "Using default branch..."
98 - build_examples/*/*/build/*.bin
99 - build_examples/*/*/build/*.elf
100 - build_examples/*/*/build/*.map
101 - build_examples/*/*/build/bootloader/*.bin
105 # it's not possible to build 100% out-of-tree and have the "artifacts"
106 # mechanism work, but this is the next best thing
107 - mkdir build_examples
109 - ${IDF_PATH}/make/build_examples.sh
113 image: espressif/esp32-ci-env
119 # If not building master branch, and there are Doxygen warnings, print them and bail out
120 - 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 )
130 image: espressif/esp32-ci-env
134 - cd components/nvs_flash/test
139 image: espressif/esp32-ci-env
143 IDF_PATH: "$CI_PROJECT_DIR"
145 - ./make/test_build_system.sh
155 LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF"
156 TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test"
157 REPORT_PATH: "$CI_PROJECT_DIR/CI_Test_Report"
166 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git
167 - cd auto_test_script
169 - python CITestReport.py -l $LOG_PATH -t $TEST_CASE_FILE_PATH -p $REPORT_PATH
172 push_master_to_github:
174 - echo "Not setting up GitLab key, not fetching submodules"
181 image: espressif/esp32-ci-env
187 - echo -n $GH_PUSH_KEY > ~/.ssh/id_rsa_base64
188 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
189 - chmod 600 ~/.ssh/id_rsa
190 - echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
191 - git remote add github git@github.com:espressif/esp-idf.git
192 - git push --follow-tags github HEAD:master
197 - echo "Not setting up GitLab key, not fetching submodules"
204 image: espressif/esp32-ci-env
208 - echo -n $DOCS_DEPLOY_KEY > ~/.ssh/id_rsa_base64
209 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
210 - chmod 600 ~/.ssh/id_rsa
211 - echo -e "Host $DOCS_SERVER\n\tStrictHostKeyChecking no\n\tUser $DOCS_SERVER_USER\n" >> ~/.ssh/config
212 - export GIT_VER=$(git describe --always)
215 - tar czvf $GIT_VER.tar.gz $GIT_VER
216 - scp $GIT_VER.tar.gz $DOCS_SERVER:$DOCS_PATH
217 - ssh $DOCS_SERVER -x "cd $DOCS_PATH && tar xzvf $GIT_VER.tar.gz && rm -f latest && ln -s $GIT_VER latest"
220 # AUTO GENERATED PART START, DO NOT MODIFY CONTENT BELOW
221 # template for test jobs
222 .test_template: &test_template
231 # LOCAL_ENV_CONFIG_PATH: define in template and jobs can overwrite if required
232 LOCAL_ENV_CONFIG_PATH: /home/gitlab-runner/LocalConfig/ESP32_IDF
233 BIN_PATH: "$CI_PROJECT_DIR/SSC/ssc_bin/SSC"
235 LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF"
236 # append test level folder to TEST_CASE_FILE_PATH in before_script of test job
237 TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test/integration_test"
238 # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary
250 - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
251 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
252 - chmod 600 ~/.ssh/id_rsa
253 - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
255 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git
256 - cd auto_test_script
258 - 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
261 # template for overnight test jobs
262 .test_template_night: &test_template_night
265 # can only be triggered
268 # must be night build triggers, otherwise exit without test
269 - test $NIGHT_BUILD = "Yes" || exit 0
273 - echo -n $GITLAB_KEY > ~/.ssh/id_rsa_base64
274 - base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
275 - chmod 600 ~/.ssh/id_rsa
276 - echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
278 - git clone $GITLAB_SSH_SERVER/yinling/auto_test_script.git
279 - cd auto_test_script
281 - 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
283 # template for unit test jobs
284 .unit_test_template: &unit_test_template
290 # jobs MUST set CONFIG_FILE in before_script, and overwrite the variables above if necessary
291 LOCAL_ENV_CONFIG_PATH: /home/gitlab-runner/LocalConfig/ESP32_IDF
292 BIN_PATH: "$CI_PROJECT_DIR/esp-idf-tests/build/"
293 LOG_PATH: "$CI_PROJECT_DIR/$CI_BUILD_REF"
295 TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test/unit_test"
298 <<: *unit_test_template
303 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/UT_Function_SYS_01.yml
311 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_SYS_01.yml
320 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_01.yml
329 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_02.yml
331 IT_Function_TCPIP_01:
338 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_01.yml
340 IT_Function_TCPIP_02:
347 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_02.yml
349 IT_Function_TCPIP_03:
356 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_03.yml
358 IT_Function_TCPIP_04:
365 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_04.yml
367 IT_Function_TCPIP_05:
374 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_05.yml
376 IT_Function_TCPIP_06:
377 <<: *test_template_night
382 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_06.yml
390 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_03.yml
398 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_04.yml
406 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_05.yml
414 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_WIFI_06.yml
416 IT_Function_TCPIP_07:
424 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_07.yml
426 IT_Function_TCPIP_08:
432 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_08.yml
434 IT_Function_TCPIP_09:
440 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_09.yml
442 IT_Function_TCPIP_10:
450 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_10.yml
452 IT_Function_TCPIP_11:
459 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_11.yml
461 IT_Function_TCPIP_12:
467 - CONFIG_FILE=$TEST_CASE_FILE_PATH/CIConfigs/IT_Function_TCPIP_12.yml