Можно ли запускать разные сборки для подпроектов в одной конфигурации Travis верхнего уровня? - PullRequest
0 голосов
/ 19 апреля 2020

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)
...