.gitlab-ci.yml 3.0 KB

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