Я использую lerna.js, и мне трудно найти подходящую документацию по настройке монорепозитория с Трэвис. Я нашел только это репо и это запись в блоге, но они и минимальны, и неоптимальны.
Как я мог выполнить все перечисленное?
- Запускайте тесты и линтеры для всех пакетов
- Кэшировать
node_modules
в каждом пакете - Желательно объявлять разные
.travis.yml
файлы для каждого пакета
Мне удалось выполнить пункт 1, выполнив:
env:
matrix:
- PACKAGE=contracts
matrix:
include:
- stage: tests
name: "unit tests"
script:
- cd packages/contracts
- npm install && npm run test
- stage: tests
name: "unit tests with coverage"
script:
- cd packages/contracts
- npm install && npm run test
env: SOLIDITY_COVERAGE=true
- stage: tests
name: "static tests"
script:
- cd packages/contracts
- npm install && npm run lint
Однако сборки выполняются очень медленно, поскольку node_modules
не кэшируется. Точно так же довольно многословный процесс объявлять все тесты сверху вниз, я бы предпочел снизу вверх через отдельные файлы .travis.yml
.