1. Контекст и проблема
В настоящее время я пытаюсь создать установку моно-репо для своего проекта Flutter, но я думаю, что то, что я спрашиваю здесь, применимо к другим контекстам.
В моем В текущем проекте у меня есть папки app
и packages
, и я хотел бы, чтобы они имели глобальную сборку верхнего уровня, а также запускали отдельные сборки, в идеале, для каждого отдельного пакета и самого приложения. Таким образом, я также мог знать, работают ли они изолированно, получают ли значки сборки и покрытия кода, и, возможно, развернуть пакеты в pub.dev , все в одном go.
2. , Как я думаю, что это может быть достигнуто
Что, я думаю, могло бы достигнуть sh эта идея состоит в том, чтобы отделить .travis.yml
внутри подпроектов / пакетов и каким-то образом вызвать их - рекурсивно - из сборки верхнего уровня.
Возможно ли это сделать в настоящее время в Трэвисе? Если нет, есть ли другое решение общей проблемы? Я не подхожу к настройке моно репо правильно? Может быть, мне нужно написать ruby программу для этой работы?
3. Пример кода
Это набросок того, что я представляю в действительности в разделе 2:
language: dart
env:
global:
- DARTSDK=./flutter/bin/cache/dart-sdk/bin
- DARTFMT=$DARTSDK/dartfmt
- FLUTTER=./flutter/bin/flutter
- FLUTTER_UP=../flutter/bin/flutter
- FLUTTER_GITHUB=https://github.com/flutter/flutter.git
- CODECOV=https://codecov.io/bash
- PACKAGES=packages
- APP=feedbacker
install:
- git clone $FLUTTER_GITHUB -b stable --depth 1
- $FLUTTER doctor
- $FLUTTER pub get
jobs:
include:
- stage: Trigger Build for Package1
script:
# Somewhow trigger nested `.travis.yml`s
- stage: Global Packages Flutter Test
script:
- $FLUTTER test --coverage $PACKAGES
after_success:
- bash <(curl -s $CODECOV)
- stage: App Flutter Test
script:
- cd $APP
- $FLUTTER_UP test --coverage
after_success:
- bash <(curl -s $CODECOV)