Procházet zdrojové kódy

ci: build esp32 example for supported IDF versions, use Docker image

Ivan Grokhotkov před 4 roky
rodič
revize
0892a0b846
1 změnil soubory, kde provedl 46 přidání a 35 odebrání
  1. 46 35
      .gitlab-ci.yml

+ 46 - 35
.gitlab-ci.yml

@@ -11,56 +11,67 @@ workflow:
     - if: "$CI_COMMIT_BRANCH"
     - if: "$CI_COMMIT_BRANCH"
 
 
 variables:
 variables:
-  IDF_REPO: https://github.com/espressif/esp-idf.git
   STM32_CUBE_F4_REPO: https://github.com/STMicroelectronics/STM32CubeF4
   STM32_CUBE_F4_REPO: https://github.com/STMicroelectronics/STM32CubeF4
-  SERIAL_FLASHER_REPO: ${GITLAB_SSH_SERVER}/espressif/esp-serial-flasher.git
+  STM32_CUBE_F4_REPO_TAG: v1.26.2
+  ARM_TOOLCHAIN_URL: https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A
   QEMU_PATH: /opt/qemu/bin/qemu-system-xtensa
   QEMU_PATH: /opt/qemu/bin/qemu-system-xtensa
 
 
-.clone_and_setup_idf: &clone_and_setup_idf |
-  git clone "${IDF_REPO}"
-  cd esp-idf
-  tools/idf_tools.py --non-interactive install all && eval "$(tools/idf_tools.py --non-interactive export)" || exit 1
-  git submodule update --init
-  export IDF_PATH=$(pwd)
-
-.clone_and_setup_stm32: &clone_and_setup_stm32 |
-  cd $CI_PROJECT_DIR
-  git submodule update --init
-  git clone "${STM32_CUBE_F4_REPO}"
-  mkdir $CI_PROJECT_DIR/examples/stm32_example/build
-
-  wget -O gcc-arm-none-eabi.tar.bz2 'https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/gcc-arm-none-eabi-9-2020-q2-update-x86_64-linux.tar.bz2?revision=05382cca-1721-44e1-ae19-1e7c3dc96118&la=en&hash=D7C9D18FCA2DD9F894FD9F3C3DC9228498FA281A'
-  tar -xjf gcc-arm-none-eabi.tar.bz2
-  mv gcc-arm-none-eabi-* gcc-arm-none-eabi
-
-.build_test_template:
-  before_script:
-    # Use CI Tools
-    - curl -sSL ${CIT_LOADER_URL} | sh
-    - source citools/import_functions
-    - PATH=$CI_PROJECT_DIR/esp-idf/tools:$PATH
-
-build_with_idf:
-  extends: .build_test_template
+.build_idf_template:
   stage: build
   stage: build
-  image: $CI_DOCKER_REGISTRY/esp-env:v4.4-1
+  image: espressif/idf:latest
   tags:
   tags:
     - build
     - build
     - internet
     - internet
   script:
   script:
-    - source /opt/pyenv/activate && pyenv global 3.6.13
-    - *clone_and_setup_idf
     - cd $CI_PROJECT_DIR/examples/esp32_example
     - cd $CI_PROJECT_DIR/examples/esp32_example
-    # Build for all supported targets
     - idf.py build -DMD5_ENABLED=1
     - idf.py build -DMD5_ENABLED=1
     - idf.py build -DMD5_ENABLED=0
     - idf.py build -DMD5_ENABLED=0
 
 
-    - *clone_and_setup_stm32
+build_idf_v3.3:
+  extends: .build_idf_template
+  image: espressif/idf:release-v3.3
+
+build_idf_v4.1:
+  extends: .build_idf_template
+  image: espressif/idf:release-v4.1
+
+build_idf_v4.2:
+  extends: .build_idf_template
+  image: espressif/idf:release-v4.2
+
+build_idf_v4.3:
+  extends: .build_idf_template
+  image: espressif/idf:release-v4.3
+
+build_idf_v4.4:
+  extends: .build_idf_template
+  image: espressif/idf:release-v4.4
+
+build_idf_master:
+  extends: .build_idf_template
+  image: espressif/idf:latest
+
+build_stm32:
+  stage: build
+  # IDF is not necessary for STM32 build, but this image is already used in another job
+  # and it comes with a recent enough CMake version.
+  image: espressif/idf:latest
+  tags:
+    - build
+    - internet
+  script:
+    - cd $CI_PROJECT_DIR
+    - git submodule update --init
+    - git clone --depth=1 -b ${STM32_CUBE_F4_REPO_TAG} ${STM32_CUBE_F4_REPO}
+    - wget --no-verbose -O gcc-arm-none-eabi.tar.bz2 ${ARM_TOOLCHAIN_URL}
+    - tar -xjf gcc-arm-none-eabi.tar.bz2
+    - mv gcc-arm-none-eabi-* gcc-arm-none-eabi
+    - mkdir $CI_PROJECT_DIR/examples/stm32_example/build
     - cd $CI_PROJECT_DIR/examples/stm32_example/build
     - cd $CI_PROJECT_DIR/examples/stm32_example/build
-    - cmake -DTOOLCHAIN_PREFIX=$CI_PROJECT_DIR/gcc-arm-none-eabi -DSTM32Cube_DIR=$CI_PROJECT_DIR/STM32CubeF4 .. && cmake --build .
+    - cmake -DTOOLCHAIN_PREFIX=$CI_PROJECT_DIR/gcc-arm-none-eabi -DSTM32Cube_DIR=$CI_PROJECT_DIR/STM32CubeF4 -G Ninja ..
+    - cmake --build .
 
 
 run_tests:
 run_tests:
-  extends: .build_test_template
   stage: test
   stage: test
   image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20191124
   image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20191124
   tags:
   tags: