Gitlab CI 多个作业编译不同配置的 ESP-IDF 固件
首先需要将不同的 kconfig 配置放入不同的文件,比如 sdkconfig.foo
。对于相同配置,还是放入 sdkconfig.defaults
。
比如,sdkconfig.foo
和 sdkconfig.bar
的文件内容分别如下:
# sdkconfig.foo
CONFIG_FOOBAR=foo
# sdkconfig.bar
CONFIG_FOOBAR=bar
对应的 .gitlab-ci.yml
如下:
image: espressif/idf
stages:
- build
.template: &template
stage: build
variables:
GIT_SUBMODULE_STRATEGY: recursive
script:
- idf.py -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.$CI_JOB_NAME" build
artifacts:
expire_in: 1 day
name: "$CI_JOB_NAME-$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA"
paths:
- build/*.bin
- build/bootloader/*.bin
- build/partition_table/*.bin
foo:
<<: *template
bar:
<<: *template
这样,每次提交都会针对 CONFIG_FOOBAR=foo
和 CONFIG_FOOBAR=bar
构建两个固件了。
发表评论