Как я могу настроить 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.