.gitlab-ci.yml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. stages:
  2. - build
  3. - test
  4. - deploy
  5. workflow:
  6. rules:
  7. - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
  8. - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
  9. when: never
  10. - if: "$CI_COMMIT_BRANCH"
  11. variables:
  12. STM32_CUBE_F4_REPO: https://github.com/STMicroelectronics/STM32CubeF4
  13. STM32_CUBE_F4_REPO_TAG: v1.26.2
  14. 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
  15. QEMU_PATH: /opt/qemu/bin/qemu-system-xtensa
  16. .build_idf_template:
  17. stage: build
  18. image: espressif/idf:latest
  19. tags:
  20. - build
  21. - internet
  22. script:
  23. - cd $CI_PROJECT_DIR/examples/esp32_example
  24. - idf.py build -DMD5_ENABLED=1
  25. - idf.py build -DMD5_ENABLED=0
  26. build_idf_v3.3:
  27. extends: .build_idf_template
  28. image: espressif/idf:release-v3.3
  29. build_idf_v4.1:
  30. extends: .build_idf_template
  31. image: espressif/idf:release-v4.1
  32. build_idf_v4.2:
  33. extends: .build_idf_template
  34. image: espressif/idf:release-v4.2
  35. build_idf_v4.3:
  36. extends: .build_idf_template
  37. image: espressif/idf:release-v4.3
  38. build_idf_v4.4:
  39. extends: .build_idf_template
  40. image: espressif/idf:release-v4.4
  41. build_idf_master:
  42. extends: .build_idf_template
  43. image: espressif/idf:latest
  44. build_stm32:
  45. stage: build
  46. # IDF is not necessary for STM32 build, but this image is already used in another job
  47. # and it comes with a recent enough CMake version.
  48. image: espressif/idf:latest
  49. tags:
  50. - build
  51. - internet
  52. script:
  53. - cd $CI_PROJECT_DIR
  54. - git submodule update --init
  55. - git clone --depth=1 -b ${STM32_CUBE_F4_REPO_TAG} ${STM32_CUBE_F4_REPO}
  56. - wget --no-verbose -O gcc-arm-none-eabi.tar.bz2 ${ARM_TOOLCHAIN_URL}
  57. - tar -xjf gcc-arm-none-eabi.tar.bz2
  58. - mv gcc-arm-none-eabi-* gcc-arm-none-eabi
  59. - mkdir $CI_PROJECT_DIR/examples/stm32_example/build
  60. - cd $CI_PROJECT_DIR/examples/stm32_example/build
  61. - cmake -DTOOLCHAIN_PREFIX=$CI_PROJECT_DIR/gcc-arm-none-eabi -DSTM32Cube_DIR=$CI_PROJECT_DIR/STM32CubeF4 -G Ninja ..
  62. - cmake --build .
  63. run_tests:
  64. stage: test
  65. image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20191124
  66. tags:
  67. - build
  68. - internet
  69. script:
  70. - cd $CI_PROJECT_DIR/test
  71. - export QEMU_PATH=/opt/qemu/bin/qemu-system-xtensa
  72. - ./run_test.sh qemu
  73. - ./run_test.sh host
  74. push_to_the_components_registry:
  75. stage: deploy
  76. image: python:3.10-alpine
  77. tags:
  78. - build
  79. - internet
  80. rules:
  81. - if: '$CI_COMMIT_BRANCH == "master"'
  82. - if: '$FORCE_PUSH_COMPONENT == "1"'
  83. script:
  84. - pip install idf-component-manager
  85. - python -m idf_component_manager upload-component --allow-existing --name=esp-serial-flasher --namespace=espressif