Отслеживание путей
Узнайте, как использовать отслеживание путей в вашем приложении или Docker Compose.
Отслеживание путей (Watch Paths) — это функция, которая позволяет мониторить определённые каталоги или файлы на наличие изменений и автоматически запускать действия при их модификации.
Обзор
Функциональность отслеживания путей доступна как для автономных приложений, так и для конфигураций Docker Compose. Эта функция помогает автоматизировать развёртывания на основе изменений файлов в вашем репозитории.
Поддерживаемые провайдеры исходного кода
Поддерживаются следующие провайдеры систем контроля версий:
- GitHub
- GitLab
- Bitbucket
- Git (работает с репозиториями Bitbucket, Github и GitLab)
Базовое использование
Допустим, у вас есть проект со следующей структурой каталогов:
my-app/
├── src/
│ ├── index.js
├── public/По умолчанию Skitflow принимает массив путей, позволяя мониторить несколько расположений. Например:
- Для запуска развёртывания при изменении любого файла в каталоге
src/используйте шаблон:src/* - Для мониторинга конкретного файла просто укажите его путь:
src/index.js
Конфигурация
Watch Paths работает сразу, без дополнительной конфигурации, при использовании GitHub в качестве провайдера. Для других провайдеров сначала необходимо настроить автоматическое развёртывание, как описано в:
- Автоматическое развёртывание
- Интеграция с Bitbucket
- Интеграция с GitLab
- Интеграция с GitHub
- Интеграция с Gitea
Примечание: При использовании провайдера Git функциональность будет работать только с репозиториями GitHub, GitLab, Bitbucket или Gitea.
Возможности сопоставления шаблонов
Мы поддерживаем широкий спектр возможностей сопоставления шаблонов:
- Множественные glob-шаблоны
- Подстановочные символы:
**(соответствует любому количеству каталогов)*.js(соответствует всем файлам JavaScript)
- Шаблоны отрицания:
!a/*.js(исключает файлы JavaScript в каталоге 'a')*!(b).js(соответствует всем файлам JavaScript, кроме заканчивающихся на 'b')
- Расширенные glob-шаблоны:
+(x|y)(соответствует 'x' или 'y' один или более раз)!(a|b)(соответствует всему, кроме 'a' или 'b')
- Классы символов POSIX:
[[:alpha:][:digit:]](соответствует любой букве или цифре)
- Раскрытие фигурных скобок:
foo/{1..5}.md(соответствует foo/1.md по foo/5.md)bar/{a,b,c}.js(соответствует bar/a.js, bar/b.js, bar/c.js)
- Классы символов регулярных выражений:
foo-[1-5].js(соответствует foo-1.js по foo-5.js)
- Логическое "или" регулярных выражений:
foo/(abc|xyz).js(соответствует foo/abc.js или foo/xyz.js)