2019-06-28 12:39:21 -04:00
.build_template :
stage : build
2021-05-26 04:44:20 -04:00
image : $ESP_ENV_IMAGE
2019-06-28 12:39:21 -04:00
tags :
- build
2023-01-16 05:23:57 -05:00
# build only on shiny servers since shiny storage server is at the same location
- shiny
2019-06-28 12:39:21 -04:00
variables :
2021-11-05 10:26:13 -04:00
# Enable ccache for all build jobs. See configure_ci_environment.sh for more ccache related settings.
IDF_CCACHE_ENABLE : "1"
after_script :
# Show ccache statistics if enabled globally
- test "$CI_CCACHE_STATS" == 1 && test -n "$(which ccache)" && ccache --show-stats || true
2020-11-19 02:08:53 -05:00
dependencies : [ ]
2019-06-28 12:39:21 -04:00
2022-08-26 00:24:19 -04:00
.build_cmake_template :
2021-11-19 03:11:47 -05:00
extends :
- .build_template
2022-07-12 22:34:02 -04:00
- .before_script_build_jobs
2022-08-26 00:24:19 -04:00
dependencies : # set dependencies to null to avoid missing artifacts issue
2021-11-19 03:11:47 -05:00
needs :
- job : fast_template_app
artifacts : false
2023-05-23 22:53:57 -04:00
- job : mr_variables
optional : true # only MR pipelines would have this
2021-11-19 03:11:47 -05:00
artifacts :
paths :
- "**/build*/size.json"
2022-07-12 22:34:02 -04:00
- "**/build*/build_log.txt"
2021-11-19 03:11:47 -05:00
- "**/build*/*.bin"
2022-08-26 00:24:19 -04:00
# upload to s3 server to save the artifacts size
# - "**/build*/*.map"
# ttfw tests require elf files
2021-11-19 03:11:47 -05:00
- "**/build*/*.elf"
2022-08-26 00:24:19 -04:00
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
# ttfw tests require sdkconfig file
- "**/build*/sdkconfig"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
2023-05-23 22:53:57 -04:00
- list_job_*.txt
2022-08-26 00:24:19 -04:00
- size_info.txt
# unit test specific
- components/idf_test/unit_test/*.yml
when : always
expire_in : 4 days
after_script :
# Show ccache statistics if enabled globally
- test "$CI_CCACHE_STATS" == 1 && test -n "$(which ccache)" && ccache --show-stats || true
# upload the binary files to s3 server
- echo -e "\e[0Ksection_start:`date +%s`:upload_binaries_to_s3_server[collapsed=true]\r\e[0KUploading binaries to s3 Server"
- shopt -s globstar
# use || true to bypass the no-file error
- zip ${CI_JOB_ID}.zip **/build*/*.bin || true
- zip ${CI_JOB_ID}.zip **/build*/*.elf || true
- zip ${CI_JOB_ID}.zip **/build*/*.map || true
- zip ${CI_JOB_ID}.zip **/build*/flasher_args.json || true
- zip ${CI_JOB_ID}.zip **/build*/flash_project_args || true
- zip ${CI_JOB_ID}.zip **/build*/config/sdkconfig.json || true
- zip ${CI_JOB_ID}.zip **/build*/sdkconfig || true
- zip ${CI_JOB_ID}.zip **/build*/bootloader/*.bin || true
- zip ${CI_JOB_ID}.zip **/build*/partition_table/*.bin || true
- mc alias set shiny-s3 ${SHINY_S3_SERVER} ${SHINY_S3_ACCESS_KEY} ${SHINY_S3_SECRET_KEY}
- mc cp ${CI_JOB_ID}.zip shiny-s3/idf-artifacts/${CI_PIPELINE_ID}/${CI_JOB_ID}.zip
- echo -e "\e[0Ksection_end:`date +%s`:upload_binaries_to_s3_server\r\e[0K"
- echo "Please download the full binary files (including *.elf and *.map files) from the following share link"
# would be clean up after 4 days
- mc share download shiny-s3/idf-artifacts/${CI_PIPELINE_ID}/${CI_JOB_ID}.zip --expire=96h
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-08-26 00:24:19 -04:00
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--copy-sdkconfig
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--extra-preserve-dirs
examples/bluetooth/esp_ble_mesh/ble_mesh_console
examples/bluetooth/hci/controller_hci_uart_esp32
examples/wifi/iperf
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2022-08-26 00:24:19 -04:00
2022-11-18 07:29:39 -05:00
.build_cmake_clang_template :
extends :
- .build_cmake_template
variables :
IDF_TOOLCHAIN : clang
TEST_BUILD_OPTS_EXTRA : ""
TEST_DIR : tools/test_apps/system/cxx_pthread_bluetooth
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-11-18 07:29:39 -05:00
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--copy-sdkconfig
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2022-11-18 07:29:39 -05:00
$TEST_BUILD_OPTS_EXTRA
2022-08-26 00:24:19 -04:00
.build_pytest_template :
extends :
- .build_cmake_template
- .before_script_build_jobs
artifacts :
paths :
- "**/build*/size.json"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
# upload to s3 server to save the artifacts size
# - "**/build*/*.map"
# - "**/build*/*.elf"
2021-11-19 03:11:47 -05:00
- "**/build*/flasher_args.json"
2022-07-12 22:34:02 -04:00
- "**/build*/flash_project_args"
2021-11-19 03:11:47 -05:00
- "**/build*/config/sdkconfig.json"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
2023-05-23 22:53:57 -04:00
- list_job_*.txt
2022-08-26 00:24:19 -04:00
- size_info.txt
2021-11-19 03:11:47 -05:00
when : always
2022-08-26 00:24:19 -04:00
expire_in : 4 days
2022-07-12 22:34:02 -04:00
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-07-12 22:34:02 -04:00
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--pytest-apps
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
2023-06-02 03:27:45 -04:00
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2021-11-19 03:11:47 -05:00
2022-12-06 20:34:18 -05:00
.build_pytest_no_jtag_template :
extends : .build_pytest_template
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-12-06 20:34:18 -05:00
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
-m \"not host_test and not jtag\"
--pytest-apps
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
2023-06-02 03:27:45 -04:00
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2022-12-06 20:34:18 -05:00
.build_pytest_jtag_template :
extends :
- .build_cmake_template
- .before_script_build_jobs
artifacts :
paths :
- "**/build*/size.json"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
# upload to s3 server to save the artifacts size
# - "**/build*/*.map"
- "**/build*/*.elf" # need elf for gdb
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
2023-05-23 22:53:57 -04:00
- list_job_*.txt
2022-12-06 20:34:18 -05:00
- size_info.txt
when : always
expire_in : 4 days
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-12-06 20:34:18 -05:00
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
-m \"not host_test and jtag\"
--pytest-apps
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
2023-06-02 03:27:45 -04:00
--collect-app-info "list_job_${CI_JOB_NAME_SLUG}.txt"
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2022-12-06 20:34:18 -05:00
2022-01-18 03:37:27 -05:00
build_pytest_examples_esp32 :
2021-11-19 03:11:47 -05:00
extends :
2022-12-06 20:34:18 -05:00
- .build_pytest_no_jtag_template
2021-11-19 03:11:47 -05:00
- .rules:build:example_test-esp32
2023-01-08 22:22:15 -05:00
parallel : 6
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32
TEST_DIR : examples
2021-11-30 22:32:50 -05:00
2022-01-18 03:37:27 -05:00
build_pytest_examples_esp32s2 :
2021-11-30 22:32:50 -05:00
extends :
2022-12-06 20:34:18 -05:00
- .build_pytest_no_jtag_template
2021-11-30 22:32:50 -05:00
- .rules:build:example_test-esp32s2
2022-07-12 22:34:02 -04:00
parallel : 3
variables :
IDF_TARGET : esp32s2
TEST_DIR : examples
2021-11-19 03:11:47 -05:00
2022-01-18 23:12:15 -05:00
build_pytest_examples_esp32s3 :
extends :
2022-12-06 20:34:18 -05:00
- .build_pytest_no_jtag_template
2022-01-18 23:12:15 -05:00
- .rules:build:example_test-esp32s3
2022-08-24 22:34:12 -04:00
parallel : 4
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32s3
TEST_DIR : examples
2022-01-18 23:12:15 -05:00
2022-07-12 22:34:02 -04:00
build_pytest_examples_esp32c3 :
2021-11-19 03:11:47 -05:00
extends :
2022-12-06 20:34:18 -05:00
- .build_pytest_no_jtag_template
2022-07-12 22:34:02 -04:00
- .rules:build:example_test-esp32c3
2023-01-08 22:22:15 -05:00
parallel : 4
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32c3
TEST_DIR : examples
2021-11-19 03:11:47 -05:00
2022-07-12 22:34:02 -04:00
build_pytest_examples_esp32c2 :
2022-05-07 03:26:45 -04:00
extends :
2022-12-06 20:34:18 -05:00
- .build_pytest_no_jtag_template
2022-07-12 22:34:02 -04:00
- .rules:build:example_test-esp32c2
2023-01-08 22:22:15 -05:00
parallel : 2
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32c2
TEST_DIR : examples
2022-05-07 03:26:45 -04:00
2022-12-06 20:34:18 -05:00
build_pytest_examples_jtag : # for all targets
extends :
- .build_pytest_jtag_template
- .rules:build:example_test-esp32
variables :
IDF_TARGET : all
TEST_DIR : examples
2022-10-27 06:55:07 -04:00
build_pytest_examples_esp32c6 :
extends :
- .build_pytest_template
- .rules:build:example_test-esp32c6
2023-01-08 22:22:15 -05:00
parallel : 2
2022-10-27 06:55:07 -04:00
variables :
IDF_TARGET : esp32c6
TEST_DIR : examples
2023-01-10 00:59:46 -05:00
build_pytest_examples_esp32h2 :
extends :
- .build_pytest_template
- .rules:build:example_test-esp32h2
variables :
IDF_TARGET : esp32h2
TEST_DIR : examples
2022-01-18 23:12:15 -05:00
build_pytest_components_esp32 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32
2023-01-08 22:22:15 -05:00
parallel : 5
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32
TEST_DIR : components
2022-01-18 23:12:15 -05:00
build_pytest_components_esp32s2 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32s2
2023-01-08 22:22:15 -05:00
parallel : 4
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32s2
TEST_DIR : components
2022-01-18 23:12:15 -05:00
build_pytest_components_esp32s3 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32s3
2023-01-08 22:22:15 -05:00
parallel : 4
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32s3
TEST_DIR : components
2022-01-18 23:12:15 -05:00
build_pytest_components_esp32c3 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32c3
2023-01-08 22:22:15 -05:00
parallel : 4
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32c3
TEST_DIR : components
2022-01-18 23:12:15 -05:00
2022-05-07 03:26:45 -04:00
build_pytest_components_esp32c2 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32c2
2023-01-08 22:22:15 -05:00
parallel : 3
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32c2
TEST_DIR : components
2022-05-07 03:26:45 -04:00
2022-10-27 06:55:07 -04:00
build_pytest_components_esp32c6 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32c6
2023-01-08 22:22:15 -05:00
parallel : 3
2022-10-27 06:55:07 -04:00
variables :
IDF_TARGET : esp32c6
TEST_DIR : components
2023-01-10 00:59:46 -05:00
build_pytest_components_esp32h2 :
extends :
- .build_pytest_template
- .rules:build:component_ut-esp32h2
2023-04-05 23:15:55 -04:00
parallel : 4
2023-01-10 00:59:46 -05:00
variables :
IDF_TARGET : esp32h2
TEST_DIR : components
2023-04-05 23:08:24 -04:00
build_only_components_apps :
2022-03-07 22:36:57 -05:00
extends :
2022-07-12 22:34:02 -04:00
- .build_cmake_template
2022-03-07 22:36:57 -05:00
- .rules:build:component_ut
2023-01-08 22:22:15 -05:00
parallel : 5
2022-07-12 22:34:02 -04:00
script :
- set_component_ut_vars
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-07-12 22:34:02 -04:00
- run_cmd python tools/ci/ci_build_apps.py $COMPONENT_UT_DIRS -v
-t all
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2022-03-07 22:36:57 -05:00
2022-08-26 00:24:19 -04:00
.build_pytest_test_apps_template :
extends : .build_pytest_template
artifacts :
paths :
- "**/build*/size.json"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
# upload to s3 server to save the artifacts size
# - "**/build*/*.map"
# pytest test apps requires elf files for coredump tests
- "**/build*/*.elf"
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
2022-09-07 16:45:04 -04:00
- "**/build*/bootloader/*.elf"
2022-08-26 00:24:19 -04:00
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
2022-09-07 16:45:04 -04:00
- "**/build*/project_description.json"
2023-05-23 22:53:57 -04:00
- list_job_*.txt
2022-08-26 00:24:19 -04:00
- size_info.txt
when : always
expire_in : 4 days
2022-02-11 02:47:32 -05:00
build_pytest_test_apps_esp32 :
extends :
2022-08-26 00:24:19 -04:00
- .build_pytest_test_apps_template
2022-02-11 02:47:32 -05:00
- .rules:build:custom_test-esp32
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32
TEST_DIR : tools/test_apps
2022-02-11 02:47:32 -05:00
build_pytest_test_apps_esp32s2 :
extends :
2022-08-26 00:24:19 -04:00
- .build_pytest_test_apps_template
2022-02-11 02:47:32 -05:00
- .rules:build:custom_test-esp32s2
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32s2
TEST_DIR : tools/test_apps
2022-02-11 02:47:32 -05:00
2022-03-07 22:36:57 -05:00
build_pytest_test_apps_esp32s3 :
2022-01-28 23:09:04 -05:00
extends :
2022-08-26 00:24:19 -04:00
- .build_pytest_test_apps_template
2022-03-07 22:36:57 -05:00
- .rules:build:custom_test-esp32s3
2023-01-08 22:22:15 -05:00
parallel : 2
2022-07-12 22:34:02 -04:00
variables :
IDF_TARGET : esp32s3
TEST_DIR : tools/test_apps
2022-03-07 22:36:57 -05:00
2022-07-12 22:34:02 -04:00
build_pytest_test_apps_esp32c3 :
2022-05-19 14:42:46 -04:00
extends :
2022-08-26 00:24:19 -04:00
- .build_pytest_test_apps_template
2022-07-12 22:34:02 -04:00
- .rules:build:custom_test-esp32c3
variables :
IDF_TARGET : esp32c3
TEST_DIR : tools/test_apps
2022-05-19 14:42:46 -04:00
2022-07-12 22:34:02 -04:00
build_pytest_test_apps_esp32c2 :
2022-03-07 22:36:57 -05:00
extends :
2022-08-26 00:24:19 -04:00
- .build_pytest_test_apps_template
2022-07-12 22:34:02 -04:00
- .rules:build:custom_test-esp32c2
variables :
IDF_TARGET : esp32c2
TEST_DIR : tools/test_apps
2022-01-28 23:09:04 -05:00
2022-10-27 06:55:07 -04:00
build_pytest_test_apps_esp32c6 :
extends :
- .build_pytest_test_apps_template
- .rules:build:custom_test-esp32c6
variables :
IDF_TARGET : esp32c6
TEST_DIR : tools/test_apps
2023-01-10 00:59:46 -05:00
build_pytest_test_apps_esp32h2 :
extends :
- .build_pytest_test_apps_template
- .rules:build:custom_test-esp32h2
variables :
IDF_TARGET : esp32h2
TEST_DIR : tools/test_apps
2023-04-05 23:08:24 -04:00
build_only_tools_test_apps :
extends :
- .build_cmake_template
- .rules:build:custom_test
parallel : 9
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2023-04-05 23:08:24 -04:00
- run_cmd python tools/ci/ci_build_apps.py tools/test_apps -v
-t all
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
2023-05-23 22:53:57 -04:00
--modified-components ${MR_MODIFIED_COMPONENTS}
--modified-files ${MR_MODIFIED_FILES}
2023-04-05 23:08:24 -04:00
2020-09-26 23:20:53 -04:00
.build_template_app_template :
2022-07-12 22:34:02 -04:00
extends :
- .build_template
- .before_script_build_jobs
2020-09-26 23:20:53 -04:00
variables :
LOG_PATH : "${CI_PROJECT_DIR}/log_template_app"
BUILD_PATH : "${CI_PROJECT_DIR}/build_template_app"
2023-04-07 07:44:42 -04:00
BUILD_DIR : "${BUILD_PATH}/@t/@w"
2020-09-26 23:20:53 -04:00
BUILD_LOG_CMAKE : "${LOG_PATH}/cmake_@t_@w.txt"
BUILD_COMMAND_ARGS : ""
artifacts :
when : always
paths :
- log_template_app/*
- size_info.txt
- build_template_app/**/size.json
2022-02-09 05:00:54 -05:00
expire_in : 1 week
2020-09-26 23:20:53 -04:00
script :
# Set the variable for 'esp-idf-template' testing
- ESP_IDF_TEMPLATE_GIT=${ESP_IDF_TEMPLATE_GIT:-"https://github.com/espressif/esp-idf-template.git"}
2020-09-28 02:27:10 -04:00
- retry_failed git clone ${ESP_IDF_TEMPLATE_GIT}
2020-09-26 23:20:53 -04:00
# Try to use the same branch name for esp-idf-template that we're
# using on esp-idf. If it doesn't exist then just stick to the default branch
- python $CHECKOUT_REF_SCRIPT esp-idf-template esp-idf-template
- export PATH="$IDF_PATH/tools:$PATH"
# Only do the default cmake build for each target, remaining part are done in the build_template_app job
- tools/ci/build_template_app.sh ${BUILD_COMMAND_ARGS}
# build-related-pre-check-jobs ------------------------------------------------
# Build at least one project for each target at earliest stage to reduce build cost for obvious failing commits
fast_template_app :
2020-11-10 04:48:35 -05:00
extends :
- .build_template_app_template
2021-02-22 03:53:37 -05:00
- .rules:build:target_test
2020-09-26 23:20:53 -04:00
stage : pre_check
variables :
BUILD_COMMAND_ARGS : "-p"
#------------------------------------------------------------------------------
2019-12-19 21:52:33 -05:00
.build_ssc_template :
2020-09-26 23:20:53 -04:00
extends :
- .build_template
2021-02-08 23:31:38 -05:00
- .rules:build:integration_test
2022-11-29 22:04:13 -05:00
needs :
- job : fast_template_app
artifacts : false
2019-06-28 12:39:21 -04:00
artifacts :
paths :
- SSC/ssc_bin
expire_in : 1 week
script :
2020-09-28 02:27:10 -04:00
- retry_failed git clone $SSC_REPOSITORY
2019-06-28 12:39:21 -04:00
- python $CHECKOUT_REF_SCRIPT SSC SSC
- cd SSC
2019-12-19 21:52:33 -05:00
- MAKEFLAGS= ./ci_build_ssc.sh $TARGET_NAME
build_ssc_esp32 :
extends : .build_ssc_template
2020-09-26 23:20:53 -04:00
parallel : 3
2019-12-19 21:52:33 -05:00
variables :
TARGET_NAME : "ESP32"
2020-01-16 22:47:08 -05:00
build_ssc_esp32s2 :
2019-12-19 21:52:33 -05:00
extends : .build_ssc_template
parallel : 2
variables :
TARGET_NAME : "ESP32S2"
2019-06-28 12:39:21 -04:00
2022-05-29 22:18:20 -04:00
build_ssc_esp32c2 :
extends : .build_ssc_template
parallel : 2
variables :
TARGET_NAME : "ESP32C2"
2021-01-14 06:59:02 -05:00
build_ssc_esp32c3 :
extends : .build_ssc_template
parallel : 3
variables :
TARGET_NAME : "ESP32C3"
2021-10-20 23:23:24 -04:00
build_ssc_esp32s3 :
extends : .build_ssc_template
parallel : 3
variables :
TARGET_NAME : "ESP32S3"
2023-01-08 22:35:56 -05:00
build_ssc_esp32c6 :
extends : .build_ssc_template
parallel : 3
variables :
TARGET_NAME : "ESP32C6"
2023-03-29 08:25:34 -04:00
build_ssc_esp32h2 :
extends : .build_ssc_template
parallel : 2
variables :
TARGET_NAME : "ESP32H2"
2021-02-08 23:31:38 -05:00
.build_esp_idf_tests_cmake_template :
2022-07-12 22:34:02 -04:00
extends :
2022-08-26 00:24:19 -04:00
- .build_cmake_template
2022-07-12 22:34:02 -04:00
- .before_script_build_jobs
2020-04-28 22:38:05 -04:00
artifacts :
paths :
2022-07-12 22:34:02 -04:00
- "**/build*/size.json"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
2022-08-26 00:24:19 -04:00
# upload to s3 server to save the artifacts size
# - "**/build*/*.map"
# ttfw tests require elf files
2022-07-12 22:34:02 -04:00
- "**/build*/*.elf"
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
- "**/build*/sdkconfig"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
2023-05-23 22:53:57 -04:00
- list_job_*.txt
2022-08-26 00:24:19 -04:00
- size_info.txt
2022-07-12 22:34:02 -04:00
- components/idf_test/unit_test/*.yml
2020-04-28 22:38:05 -04:00
when : always
expire_in : 4 days
2019-06-28 12:39:21 -04:00
script :
2023-05-23 22:53:57 -04:00
# CI specific options start from "--parallel-count xxx". could ignore when running locally
2022-07-12 22:34:02 -04:00
- run_cmd python tools/ci/ci_build_apps.py tools/unit-test-app -v
-t $IDF_TARGET
--config "configs/*="
--copy-sdkconfig
2022-07-29 02:42:08 -04:00
--preserve-all
2022-07-12 22:34:02 -04:00
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
- run_cmd python tools/unit-test-app/tools/UnitTestParser.py tools/unit-test-app ${CI_NODE_INDEX:-1}
2019-06-28 12:39:21 -04:00
2020-04-28 22:38:05 -04:00
build_esp_idf_tests_cmake_esp32 :
2021-02-08 23:31:38 -05:00
extends :
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32
2020-04-28 22:38:05 -04:00
variables :
IDF_TARGET : esp32
build_esp_idf_tests_cmake_esp32s2 :
2021-02-08 23:31:38 -05:00
extends :
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32s2
2020-04-28 22:38:05 -04:00
variables :
IDF_TARGET : esp32s2
2019-06-28 12:39:21 -04:00
2020-08-20 00:22:36 -04:00
build_esp_idf_tests_cmake_esp32s3 :
2021-02-08 23:31:38 -05:00
extends :
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32s3
2020-08-20 00:22:36 -04:00
variables :
IDF_TARGET : esp32s3
2022-05-19 14:42:46 -04:00
build_esp_idf_tests_cmake_esp32c2 :
2021-02-08 23:31:38 -05:00
extends :
- .build_esp_idf_tests_cmake_template
2022-05-19 14:42:46 -04:00
- .rules:build:unit_test-esp32c2
2020-12-30 03:10:37 -05:00
variables :
2022-05-19 14:42:46 -04:00
IDF_TARGET : esp32c2
2020-12-30 03:10:37 -05:00
2022-05-19 14:42:46 -04:00
build_esp_idf_tests_cmake_esp32c3 :
2021-11-26 04:03:47 -05:00
extends :
- .build_esp_idf_tests_cmake_template
2022-05-19 14:42:46 -04:00
- .rules:build:unit_test-esp32c3
2021-11-26 04:03:47 -05:00
variables :
2022-05-19 14:42:46 -04:00
IDF_TARGET : esp32c3
2021-11-26 04:03:47 -05:00
2022-10-27 06:55:07 -04:00
build_esp_idf_tests_cmake_esp32c6 :
extends :
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32c6
variables :
IDF_TARGET : esp32c6
2023-01-10 00:59:46 -05:00
build_esp_idf_tests_cmake_esp32h2 :
extends :
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32h2
variables :
IDF_TARGET : esp32h2
2019-06-27 07:11:15 -04:00
build_examples_cmake_esp32 :
2021-02-08 23:31:38 -05:00
extends :
2022-07-12 22:34:02 -04:00
- .build_cmake_template
2021-02-08 23:31:38 -05:00
- .rules:build:example_test-esp32
2023-01-08 22:22:15 -05:00
parallel : 8
2019-06-27 07:11:15 -04:00
variables :
IDF_TARGET : esp32
2022-07-12 22:34:02 -04:00
TEST_DIR : examples
2019-06-27 07:11:15 -04:00
2019-08-07 23:44:24 -04:00
build_examples_cmake_esp32s2 :
2021-02-08 23:31:38 -05:00
extends :
2022-07-12 22:34:02 -04:00
- .build_cmake_template
2021-02-08 23:31:38 -05:00
- .rules:build:example_test-esp32s2
2023-01-08 22:22:15 -05:00
parallel : 7
2019-08-07 23:44:24 -04:00
variables :
2020-01-16 22:47:08 -05:00
IDF_TARGET : esp32s2
2022-07-12 22:34:02 -04:00
TEST_DIR : examples
2019-08-07 23:44:24 -04:00
2021-09-15 23:16:52 -04:00
build_examples_cmake_esp32s3 :
extends :
2022-07-12 22:34:02 -04:00
- .build_cmake_template
2021-09-15 23:16:52 -04:00
- .rules:build:example_test-esp32s3
2022-08-24 22:34:12 -04:00
parallel : 7
2021-09-15 23:16:52 -04:00
variables :
IDF_TARGET : esp32s3
2022-07-12 22:34:02 -04:00
TEST_DIR : examples
2021-09-15 23:16:52 -04:00
2022-05-19 14:42:46 -04:00
build_examples_cmake_esp32c2 :
extends :
2022-07-12 22:34:02 -04:00
- .build_cmake_template
2022-05-19 14:42:46 -04:00
- .rules:build:example_test-esp32c2
2023-01-08 22:22:15 -05:00
parallel : 6
2022-05-19 14:42:46 -04:00
variables :
IDF_TARGET : esp32c2
2022-07-12 22:34:02 -04:00
TEST_DIR : examples
2022-05-19 14:42:46 -04:00
2020-12-14 22:00:02 -05:00
build_examples_cmake_esp32c3 :
2021-02-08 23:31:38 -05:00
extends :
2022-07-12 22:34:02 -04:00
- .build_cmake_template
2021-02-08 23:31:38 -05:00
- .rules:build:example_test-esp32c3
2022-08-24 22:34:12 -04:00
parallel : 6
2020-12-14 22:00:02 -05:00
variables :
IDF_TARGET : esp32c3
2022-07-12 22:34:02 -04:00
TEST_DIR : examples
2020-12-14 22:00:02 -05:00
2022-10-27 06:55:07 -04:00
build_examples_cmake_esp32c6 :
extends :
- .build_cmake_template
- .rules:build:example_test-esp32c6
2023-01-08 22:22:15 -05:00
parallel : 6
2022-10-27 06:55:07 -04:00
variables :
IDF_TARGET : esp32c6
TEST_DIR : examples
2023-01-10 00:59:46 -05:00
build_examples_cmake_esp32h2 :
extends :
- .build_cmake_template
- .rules:build:example_test-esp32h2
parallel : 2
variables :
IDF_TARGET : esp32h2
TEST_DIR : examples
2022-11-18 07:29:39 -05:00
build_clang_test_apps_esp32 :
extends :
- .build_cmake_clang_template
- .rules:build:custom_test-esp32
variables :
IDF_TARGET : esp32
build_clang_test_apps_esp32s2 :
extends :
- .build_cmake_clang_template
- .rules:build:custom_test-esp32s2
variables :
IDF_TARGET : esp32s2
build_clang_test_apps_esp32s3 :
extends :
- .build_cmake_clang_template
- .rules:build:custom_test-esp32s3
variables :
IDF_TARGET : esp32s3
.build_clang_test_apps_riscv :
extends :
- .build_cmake_clang_template
variables :
# For RISCV clang generates '.linker-options' sections of type 'llvm_linker_options' in asm files.
# See (https://llvm.org/docs/Extensions.html#linker-options-section-linker-options).
# Binutils gas ignores them with warning.
# TODO: LLVM-112, Use integrated assembler.
TEST_BUILD_OPTS_EXTRA : "--ignore-warning-str 'Warning: unrecognized section type'"
build_clang_test_apps_esp32c3 :
extends :
- .build_clang_test_apps_riscv
- .rules:build:custom_test-esp32c3
variables :
IDF_TARGET : esp32c3
build_clang_test_apps_esp32c2 :
extends :
- .build_clang_test_apps_riscv
- .rules:build:custom_test-esp32c2
variables :
IDF_TARGET : esp32c2
build_clang_test_apps_esp32c6 :
extends :
- .build_clang_test_apps_riscv
- .rules:build:custom_test-esp32c6
# TODO: c6 builds fail in master due to missing headers
allow_failure : true
variables :
IDF_TARGET : esp32c6
2020-09-26 23:20:53 -04:00
.test_build_system_template :
2021-06-29 07:35:37 -04:00
stage : host_test
2020-09-26 23:20:53 -04:00
extends :
- .build_template
2021-02-08 23:31:38 -05:00
- .rules:build
2020-11-10 04:48:35 -05:00
needs :
- job : fast_template_app
artifacts : false
2019-06-28 12:39:21 -04:00
script :
- ${IDF_PATH}/tools/ci/test_configure_ci_environment.sh
- rm -rf test_build_system
- mkdir test_build_system
- cd test_build_system
2020-09-26 23:20:53 -04:00
- ${IDF_PATH}/tools/ci/${SHELL_TEST_SCRIPT}
2019-06-28 12:39:21 -04:00
test_build_system_cmake :
2020-09-26 23:20:53 -04:00
extends : .test_build_system_template
variables :
SHELL_TEST_SCRIPT : test_build_system_cmake.sh
2019-07-08 12:42:46 -04:00
2019-10-30 10:00:18 -04:00
test_build_system_cmake_macos :
2020-09-26 23:20:53 -04:00
extends :
- .test_build_system_template
- .before_script_macos
2021-02-08 23:31:38 -05:00
- .rules:build:macos
2020-09-26 23:20:53 -04:00
tags :
- macos_shell
2020-10-28 22:42:37 -04:00
variables :
SHELL_TEST_SCRIPT : test_build_system_cmake.sh
2019-10-30 10:00:18 -04:00
2021-08-30 18:32:07 -04:00
test_build_system_spaces :
extends : .test_build_system_template
variables :
SHELL_TEST_SCRIPT : test_build_system_spaces.py
2022-08-08 20:11:57 -04:00
pytest_build_system :
extends : .test_build_system_template
2023-04-11 06:29:11 -04:00
parallel : 3
2022-08-08 20:11:57 -04:00
artifacts :
paths :
- XUNIT_RESULT.xml
- test_build_system
when : always
expire_in : 2 days
reports :
junit : XUNIT_RESULT.xml
script :
- ${IDF_PATH}/tools/ci/test_configure_ci_environment.sh
- cd ${IDF_PATH}/tools/test_build_system
2023-04-11 06:29:11 -04:00
- pytest --parallel-count ${CI_NODE_TOTAL:-1} --parallel-index ${CI_NODE_INDEX:-1}
--work-dir ${CI_PROJECT_DIR}/test_build_system --junitxml=${CI_PROJECT_DIR}/XUNIT_RESULT.xml
2022-08-08 20:11:57 -04:00
2019-07-08 12:42:46 -04:00
build_docker :
2020-09-26 23:20:53 -04:00
extends :
2021-02-08 23:31:38 -05:00
- .before_script_minimal
- .rules:build:docker
2021-06-29 07:35:37 -04:00
stage : host_test
2021-08-10 04:29:25 -04:00
needs : [ ]
2019-07-08 12:42:46 -04:00
image : espressif/docker-builder:1
tags :
- build_docker_amd64_brno
variables :
DOCKER_TMP_IMAGE_NAME : "idf_tmp_image"
script :
2020-09-11 10:14:15 -04:00
- export LOCAL_CI_REPOSITORY_URL=$CI_REPOSITORY_URL
- if [ -n "$LOCAL_GITLAB_HTTPS_HOST" ]; then export LOCAL_CI_REPOSITORY_URL="https://gitlab-ci-token:${CI_JOB_TOKEN}@${LOCAL_GITLAB_HTTPS_HOST}/${CI_PROJECT_PATH}"; fi
2021-11-24 04:20:11 -05:00
- if [ -n "$LOCAL_GIT_MIRROR" ]; then export LOCAL_CI_REPOSITORY_URL="${LOCAL_GIT_MIRROR}/${CI_PROJECT_PATH}"; fi
2020-09-11 10:14:15 -04:00
- echo "Using repository at $LOCAL_CI_REPOSITORY_URL"
2021-10-28 00:07:02 -04:00
- export DOCKER_BUILD_ARGS="--build-arg IDF_CLONE_URL=${LOCAL_CI_REPOSITORY_URL} --build-arg IDF_CLONE_BRANCH_OR_TAG=${CI_COMMIT_REF_NAME} --build-arg IDF_CHECKOUT_REF=${CI_COMMIT_TAG:-$PIPELINE_COMMIT_SHA}"
2019-07-08 12:42:46 -04:00
# Build
- docker build --tag ${DOCKER_TMP_IMAGE_NAME} ${DOCKER_BUILD_ARGS} tools/docker/
# We can't mount $PWD/examples/get-started/blink into the container, see https://gitlab.com/gitlab-org/gitlab-ce/issues/41227.
# The workaround mentioned there works, but leaves around directories which need to be cleaned up manually.
# Therefore, build a copy of the example located inside the container.
- docker run --rm --workdir /opt/esp/idf/examples/get-started/blink ${DOCKER_TMP_IMAGE_NAME} idf.py build
2019-07-18 11:34:36 -04:00
2020-07-15 12:18:33 -04:00
# This job builds template app with permutations of targets and optimization levels
build_template_app :
2021-02-08 23:31:38 -05:00
extends :
- .build_template_app_template
- .rules:build
2021-06-29 07:35:37 -04:00
stage : host_test
2020-11-10 04:48:35 -05:00
needs :
- job : fast_template_app
artifacts : false