如何配置Travis CI以测试在PlatformIO下正确加载库存储库?

时间:2018-11-12 18:56:31

标签: travis-ci platformio

我有许多Arduino项目使用的库。我使用PlatformIO作为构建系统,因此我在库的根目录中创建了一个library.json文件,以标识当我将此库包含在项目中时应加载的相关库。一切都很好。

有时依赖库会发生变化-PlatformIO对在Arduino library.properties文件中重命名它们特别敏感。当我发现我的库仅在尝试构建使用该库的项目时才被破坏,这真令人痛苦。

我想将Travis配置为定期运行(感谢Travis cron作业!),并确认我可以加载所有依赖的库。

pio ci并不真正适用于库。 pio test需要PlatformIO订阅(强烈建议使用,但并非总是这样)。

1 个答案:

答案 0 :(得分:0)

.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中运行测试。