Крюк DevSpace для запуска тестов в контейнере после обновления контейнера

#devspace

Вопрос:

Моя конечная цель состоит в том, чтобы тесты запускались автоматически при каждом обновлении контейнера. Например, при обновлении /api он должен синхронизировать изменения между локальным и контейнером. После этого он должен автоматически запустить тесты… в конце концов.

Я начинаю с Hello World! того, что в соответствии с примером:

 # DevSpace --version = 5.16.0
version: v1beta11
...
hooks:
- command: |
    echo Hello World!
  container:
    imageSelector: ${APP-NAME}/${API-DEV}
  events: ["after:initialSync:${API}"]
...
 

Я попробовал все следующее и не получил желаемого поведения:

 stop:sync:${API}
restart:sync:${name}
after:initialSync:${API}
devCommand:after:sync
 

В лучшем случае я могу просто начать Hello World! печатать при первом запуске devspace dev -b , но ничего после того, как я внесу изменения в файлы, для /api которых файлы синхронизируются.

Предложения?

Ответ №1:

Для этого вам понадобится крюк после синхронизации, который отделен от крючков жизненного цикла DevSpace. Вы можете определить его dev.sync напрямую, и это выглядит так:

 dev:
  sync:
  - imageSelector: john/devbackend
    onUpload:
      execRemote:         
        onBatch:          
          command: bash
          args:           
          - -c
          - "echo 'Hello World!' amp;amp; other commands..."
 

Дополнительная информация в документах: https://devspace.sh/cli/docs/configuration/development/file-synchronization#onupload