Gitlab CI 多个作业编译不同配置的 ESP-IDF 固件

首先需要将不同的 kconfig 配置放入不同的文件,比如 sdkconfig.foo。对于相同配置,还是放入 sdkconfig.defaults

比如,sdkconfig.foosdkconfig.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=fooCONFIG_FOOBAR=bar 构建两个固件了。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据