В этом монорепозитории у нас есть три пакета которые можно опубликовать. Для этого нужно перейти на страницу Actions и запустить соответствующий workflow.
Для публикации надо запустить publish_icons workflow.
Для публикации надо запустить publish_scripts workflow.
Для публикации надо запустить publish_sprite workflow.
- Мы поднимаем версию пакета в package.json и создаём коммит в репозитории https://github.com/VKCOM/icons с сообщением о том, какой пакет публикуем как изменилась его версия.
- Создаем тэг на этом коммите в формате
${packageName}@{version}, который потом можно найти на странице с тэгами
Например:@vkontakte/icons@2.43.0.
Мы создаем тэг при публикации каждого пакета, не только@vkontakte/icons. - Публикуем пакет в NPM.
Зачем нужен скрипт g:npm:version в главном package.json репозитория?
Начиная с yarn >= 2 команда yarn version стала урезанной, и перестала принивать параметр --preid, который нам нужен для публикации
alpha и beta версий.
В качестве решения мы используем npm version вместо yarn version.
Мы специально отключили следующие флаги, чтобы npm version работал корректно и косвенно не влиял нашу конфигукцию yarn workspaces:
По поводу использования cd $INIT_CWD можно почитать здесь: How to share scripts between workspaces?.