semantic-release: возможно ли отследить и выпустить определенный каталог в репо?
У нас есть проект Java с субмодулем JavaScript, структура которого выглядит следующим образом:
java-project
|- folder1
|- folder2
|- ...
|- javascript-submodule
|- package.json
|- ...
Можно ли настроить semantic-release
отслеживать изменения в javascript-submodule
только и вызвать выпуск Npm этого с помощью javascript-submodule/package.json
?
1 ответ
Вы можете использовать semantic-release в любом каталоге, вам просто нужно сделать cd
в этом каталоге перед запуском semantic-release
команда.
Однако концепция семантического выпуска заключается в анализе коммитов, выдвинутых с момента последнего выпуска. Кажется, у вас есть 2 разных проекта в одном репо (Java и Javascript), поэтому анализ фиксации будет проблематичным, так как семантическая версия также будет запускать релизы для фиксации, которые вносят изменения только в проект Java. Кроме того, semantic-release использует Git-теги для определения коммитов, связанных с релизом. Таким образом, вы будете в конечном итоге с тегами, как v1.0.0
, v1.1.0
и т. д., которые относятся только к проекту Javascript и могут конфликтовать с выпусками руководства, которые вы делаете для проекта Java.
Вероятно, лучшим решением в вашем случае будет использование semantic-release для выпуска обоих проектов одновременно:
- Используйте плагин https://github.com/semantic-release/exec выпуска проекта Java - Используйте плагин https://github.com/semantic-release/npm для выпуска проекта Javascript с возможностью pkgRoot
В такой конфигурации и проект Java, и проект Javascript будут выпущены вместе с одной и той же версией, а теги Git будут применяться к обоим.