Как я могу настроить Travis CI для проверки правильности загрузки репозитория библиотеки под PlatformIO?

У меня есть библиотека, используемая рядом проектов Arduino. Я использую PlatformIO в качестве моей системы сборки, поэтому я создал library.json файл в корне библиотеки, чтобы определить зависимые библиотеки, которые должны быть загружены, когда я включаю эту библиотеку в проект. Все хорошо.

Иногда зависимые библиотеки меняются - PlatformIO особенно чувствителен к их переименованию в Arduino library.properties файл. Больно, когда я обнаруживаю, что моя библиотека ломается только тогда, когда я пытаюсь создать проект, который ее использует.

Я хотел бы настроить Travis на периодический запуск (спасибо, задания Travis cron!) И подтвердить, что я могу загрузить все зависимые библиотеки.

pio ci на самом деле не относится к библиотекам. pio test требуется подписка PlatformIO (настоятельно рекомендуется, но не всегда вариант).

1 ответ

Поместите следующее в .travis.yml:

`` `

Тест зависимостей PlatformIO

- language: python
  python: 2.7
  install:
    - pip install -U platformio
  script:
    - mkdir test_platformio_deps
    - cd test_platformio_deps
    - echo "[env:adafruit_feather_m0]" > platformio.ini
    - echo "platform = atmelsam" >> platformio.ini
    - echo "board = adafruit_feather_m0" >> platformio.ini
    - echo "framework = arduino" >> platformio.ini
    - if [ "${TRAVIS_PULL_REQUEST_SLUG}" = "" ]; then echo "lib_deps = SPI, https://github.com/${TRAVIS_REPO_SLUG}" ; else echo "lib_deps = SPI, https://github.com/${TRAVIS_PULL_REQUEST_SLUG}#${TRAVIS_PULL_REQUEST_BRANCH}" ; fi >> platformio.ini
    - cat platformio.ini
    - mkdir src
    - echo "int main() {}" > src/main.cpp
    - platformio run
  cache:
    directories:
      - "~/.platformio"

`` `

Это создаст простой проект, который зависит от вашей библиотеки, а затем попытается его построить. Если все зависимости загружаются, это будет успешно.

Хитрая линия с TRAVIS_PULL_REQUEST_SLUG обрабатывает тест в PR.

Другие вопросы по тегам