0

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

有时依赖库会发生变化——PlatformIO 对在 Arduinolibrary.properties文件中重命名它们特别敏感。当我发现我的库只有在我尝试构建一个使用它的项目时才被破坏时,这是一种痛苦。

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

pio ci并不真正适用于图书馆。pio test需要 PlatformIO 订阅(强烈推荐,但并不总是一种选择)。

4

1 回答 1

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 中运行测试的棘手行。

于 2018-11-12T19:00:43.237 回答