.gitlab-ci.yml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. stages:
  2. - build
  3. - test
  4. variables:
  5. IDF_REPO: ${GITLAB_SSH_SERVER}/espressif/esp-idf.git
  6. SERIAL_FLASHER_REPO: ${GITLAB_SSH_SERVER}/espressif/esp-serial-flasher.git
  7. QEMU_PATH: /opt/qemu/bin/qemu-system-xtensa
  8. .clone_and_setup_idf: &clone_and_setup_idf |
  9. cit_add_ssh_key "${GITLAB_KEY}"
  10. git clone "${IDF_REPO}"
  11. cd esp-idf
  12. tools/idf_tools.py --non-interactive install && eval "$(tools/idf_tools.py --non-interactive export)" || exit 1
  13. git submodule update --init
  14. export IDF_PATH=$(pwd)
  15. before_script:
  16. # Use CI Tools
  17. - curl -sSL ${CIT_LOADER_URL} | sh
  18. - source citools/import_functions
  19. - PATH=$CI_PROJECT_DIR/esp-idf/tools:$PATH
  20. build_with_idf:
  21. stage: build
  22. image: ${CI_DOCKER_REGISTRY}/esp32-ci-env
  23. tags:
  24. - build
  25. - internet
  26. script:
  27. - *clone_and_setup_idf
  28. - cd $CI_PROJECT_DIR/examples/flash_multiple_partitions
  29. - idf.py build
  30. - cd $CI_PROJECT_DIR/examples/flash_at_firmware
  31. - idf.py build
  32. run_tests:
  33. stage: test
  34. image: ${CI_DOCKER_REGISTRY}/qemu:esp-develop-20191124
  35. tags:
  36. - build
  37. - internet
  38. script:
  39. - cd $CI_PROJECT_DIR/test
  40. - dd if=/dev/zero bs=1024 count=4096 of="empty_file.bin"
  41. # Run QEMU in backround (deamonized)
  42. - ${QEMU_PATH}
  43. -daemonize
  44. -machine esp32
  45. -drive file=empty_file.bin,if=mtd,format=raw
  46. -global driver=esp32.gpio,property=strap_mode,value=0x0f
  47. -serial tcp::5555,server,nowait
  48. - cd $CI_PROJECT_DIR/test && mkdir build && cd build
  49. # Compile and run qemu tests
  50. - cmake .. -DQEMU_TEST=True && make && ./serial_flasher_test
  51. # Compile and run host tests
  52. - cmake .. -DQEMU_TEST=False && make && ./serial_flasher_test