Skip to main content

Основные команды

Суть pvm управлять двумя составляющими – релизами и версиями. По пути обновлять ченжлоги и уведомлять в слак. При этом есть разные процессы делать релизы – можно вручную, можно автоматически. Автоматически процесс тоже может различаться в зависимости от того, где мы храним версии например.

Цель данной главы – показать "кирпичики", из которых можно выстраивать те или иные процессы доставки релизов. А также на практике настроем парочку процессов, в котором релизы будут происходить автоматически по мержу в мастер, без участия человека, и как pvm может нам помочь в этом.

Bender Rodriguez

При этом подразумевается использование github flow, с тем дополнением, что мерж в мастер сразу же ведет к релизу пакетов, хотя это и можно перенастроить при желании.

Также предполагается что у вас есть некоторая платформа где вы разрабатываете продукт, которая поддерживает базовые сценарии CI/CD, такие как запуск задач для мерж-реквестов, а также запуск задач для тегов или бранчей.

Давайте теперь перейдем к примеру процесса, где мерж автоматически приводит к новому релизу с релизным коммитом.

Flow с релизным коммитом и тегом

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVcXFlz4khcdTAwMTJ+71/h8L5cdTAwMGWauo95M+D7wlx1MDAwNnztbnRwXGKQOYRBNpiJ+e+bJWNcdTAwMDQ6MGDjVscqOrpcdTAwMWKVjlLVl5lfXHUwMDFlVX//2NnZ9V779u5fO7v2uFbpOPVBZbT7hzn/Ylx1MDAwZoaO24Mm4v9cdTAwMWW6z4Oaf2XL8/rDv/78M7jDqrndt7vsjt21e95cdTAwMTCu+zf83tn52/977j2VwcB9e4V/OnhcclUofPbC7fmvZERcdIqw1LNcdTAwMGKcYVx1MDAxZV7l2XVobVQ6QztoMad2Zb514NLy4zU+XHUwMDFmXHUwMDE17OJ4kKf2TfDWhtPpXHUwMDE0vdeO36OhXHUwMDBiX1x1MDAxMbRccr2B27ZvnbrXMq9cdTAwMGWdT7pr4D43Wz17aL48+Fx1MDAwZbdfqTneK5zDKDhb6TX9Z1x1MDAwNGfG8IsralGpNFx1MDAxMoTPXHUwMDFh/Fu5tlx1MDAwNOJMKMlDvcm5XHUwMDFkd2B68y+sXHUwMDA0q1SD/lQrtXZcdTAwMTM61avPrvFcdTAwMDaV3rBfXHUwMDE5wPxcdTAwMDTXjabfKZGyKFF47t0t22m2PNNPS1x1MDAxMUbwwuttf+jhvOZaMjlrMO/sXHUwMDFm131cdTAwMDD8Nzx2rcqgP1x1MDAxZKNdv29z/TU/99/QXHUwMDEzc3tl4GWdXt3pNaGl99zpzNrsXj2hpe8680g0R/C/nWD0/Vx1MDAxZrP///eP2Kuj42OOTDA0wVx1MDAwM36EXHUwMDFltNupXGa9nNvtOlx1MDAxZVx1MDAwMLZgelx1MDAxNe6q/4F7RjJadqVcdTAwMWXzifNtU1x1MDAxMfJb//kjXso6Ts+OXHUwMDE1MspcdTAwMTOlXGYzgVxyzlx1MDAxOF1ZzDrll27jQOSyP1x1MDAwYm2neVE4aWfOLjZcdTAwMTEz8m1iJoS2lJBcdTAwMGJo9u9cdTAwMTRxMF9fylwi17xLXHUwMDE4JcxiXHUwMDBiwj1cdTAwMTMwjLSliVx1MDAxNjFcdTAwMTKGscaUw8TQ9UVsaH78PlwiXHUwMDA2XHUwMDEzI5FENCRjZnCE1iEhi39cdTAwMDSh1FpQoMFcdTAwMDO4ee5H90fmyFx1MDAxYyDkhFwiX/1+n5CbtqVcdTAwMTJudzpOf1x1MDAxOCvkTCTKuJaUS1wi+OpcIn725F30K5On08P9XHUwMDBlvrg82HNcdTAwMGa7x98l4ngzXHUwMDEx59iSUlJGwzLOkIU0XCJcboFEXHUwMDExQcXnJL3RaMSIObckpzpe0KmwKGdcXHNMwGhcdTAwMTKhXCLirqHPXHUwMDEyXHUwMDAxWLdcIu6bXCJcbvqUaDVcdTAwMDRlUjFC5MqQKt5cdTAwMWM41ee263T7XHUwMDBm7mX7uTHK7e2nXHUwMDFiUlLDtFx1MDAxMk6oVlxumFx1MDAxOFwiXHUwMDBiuFwiQlhYS4lcYqNcdTAwMDJwJcOs8WssXGIwXHUwMDEwTVx0vIVoJLXENFxuMGVxXG5smVxiXHUwMDFmX1x1MDAxMolcYsA40YxvXHUwMDBiYDP9uDvpXHUwMDE0XHUwMDA3V0d73lx1MDAxNa5m2/3Sflx083x/911rbopDhXVcIlx1MDAwZVx0x1SBnVhdtaHxxXHrvtZqXFxcXFx1MDAxNunk9KVcXO9eyXTjUCtk6VxiTfHvpVx1MDAxYeZeXHUwMDAyOFx1MDAwMT5Gt9FPYXBcdTAwMWK6zfBnXG7TxLdcdTAwMGK917Iqjcdk7/Bp4mbvW2J8vFeYfFx1MDAxYXpSJ0NcdTAwMGZGnVx1MDAxMYolXlx1MDAxOXp3+5PTXG5qXFyNWvThpDjA3dvR+Um6oaeIslx1MDAxMFx1MDAwMVx1MDAwMZM0QVx1MDAwNSpcbsOAp/BLrVx1MDAwNqSMg7VcdTAwMTJcXG9cdTAwMTmFzGmPL3qH2ZuTR6ndPY33XHUwMDA3wXyYu3uF6pPKNc5v7/K5wzI9r1x1MDAxNs8rX6AhaTJMXHUwMDE5JUSBglhcdTAwMTmm9eGo+Fg6ujogo9vjO37afFx1MDAxOTSHKYepXHUwMDAwXHUwMDE3gGOFSFx1MDAxMkylUFxiM03TXHJTpqTGoNS3i9I7So5ov3V3LXJHXrlz8JDt7OXmUdrv6eFe6fpw4HSdW+11s+fDp5fVUJpcdTAwMTjpI5wnYpQwmECYndUxXHUwMDFhzzS+XHSjm8UgXHUwMDE0Qlx1MDAxNoO5XHUwMDE1QlBcdTAwMGVAUSGMXCLLXHUwMDBmUCAtXHUwMDE4w3iJl1x1MDAwMqrW1rVcciw5srBcdTAwMDJTTFx1MDAxOOZcYqhcdTAwMDLTMlxuUYKJpSTTmkf7MVWlXGJcdTAwMWNcdTAwMDNcdTAwMDUmf32Qflwi/Pd3gE77/Y6P3VxuXHUwMDAzXHUwMDA1t/Y8fPt4rIGgUJBQLoAvXHUwMDA1ZNh8QqVcdTAwMGbXcJBPRYVQXFxohECfTC/4Z9arhahIUp9cdTAwMGVGYs+Vl5XR67M8QOfl00l9UI3vXHUwMDEzXHUwMDA3bSWoQkpSqnBAn2ZdwmxcdTAwMWGBjHTlS8MwmWRs+M1RWFx1MDAwNE/8XHUwMDExevKvXGJ9XHUwMDBl7Jr3JnYxqlx1MDAwN88p2pDqIVxiXHUwMDExSZBcXN2PXT65qdQ8UnJcdTAwMGLzcIYhg7WltFqIl2ygapYmXHUwMDE4MMCGI1x1MDAxOZ9h4NSioZjsu1x1MDAxOVx1MDAwNFx1MDAwYlx0MNuyy7DchiSSta+xk5499uKwyllcdTAwMTJUuVx1MDAwNGZcdTAwMDG0YnVX91xcn9dVO3OB7EFj8nJYr9fIrUo3VLlilmAqXHUwMDEyxMswQDChn1x1MDAwNWu8XeQqXG5OgsKglEhcdTAwMDFLgVx1MDAxZWxcdTAwMDOVwe1ccrfnXHUwMDE1nclblG3h7EGl63ReXHUwMDE3OLKPXCJ4Qe74z1xcfv7Lh7afXGYy9mPh4r2O0zQw2+3YjUX8eU6t0pk1e25/ucJNwi+mS2hcdTAwMWUnXFyv4zBnXHUwMDFh5Zf7+p2Li+iVknHOeWjcXHUwMDFlpFx1MDAxYsBSgSdCKddcdTAwMTFcdTAwMDRTXHUwMDBig0qbT3R8XHUwMDFkgnWMs1x1MDAxMUUwo1x1MDAxNGhcctmOXHUwMDEz/ElcdTAwMDT3X7o73cqgnelcdTAwMGbWwnFccnpgXHUwMDBmliC569TrME9cdTAwMWIqY5xcYmZElPZcdTAwMDNbK6NZ3zRcdTAwMWP77OH18qJUu77t57OHo4NOytFMmVx1MDAxNY06moRcdTAwMWL7NHGIR7JYXHTJgGOKXHUwMDE4l2lEsjdwmk1cdTAwMDBLOtQxSVx1MDAwNDD4o8bRWYP66kfvjGewW3PJXHK7vir1X6r6Od1cdTAwMDDmatHNxkgnYnbzXGK5WFx1MDAwNbOYMCC7hG85p79cdTAwMTFmXHUwMDBmj0upgKtIjmOCR1xuXrtcdTAwMTCrw/VcdTAwMTJXXHUwMDFiXHUwMDE5PHI1aTbpmfdwVtfiKN1wXHUwMDE1XGJbYT+NgJ/GXHUwMDE0+nQlWFx1MDAwMnNAq2BcdTAwMTfcZC2Bm8s0kt/+c6eTXHUwMDE52E/P9tBLXHUwMDA1ipNrXHUwMDFhJfXD0IqvXGbiXvXuqDAsNlx1MDAwZWu44J1cdTAwMWRk+ZPn0nSDWEppYVx1MDAwMpo2TIFcdDRMa3K+XHUwMDFlyKs5cVgzIZDGOo1Arvkxs3RcdTAwMTBcdTAwMDdFk1WxQExcdTAwMTItV1x1MDAwZkRM8JluXZ+4I/DgXHUwMDFmz5/s8Z50vq32YzNcdTAwMTBroi0kXHUwMDA0i1x1MDAxNuZiboXPf1x1MDAxOYiZjoKYRbUxZpQoeEdcdTAwMWGpRNdcdTAwMWU07f/03rBcdTAwMWNcdTAwMGJluiUoJ6aeMGKJQVx0XHUwMDAyhlxyqFx1MDAwNVGrozm+1CDdaNbawlSYUiVcIoGILlwimlxuiyGCOMfI5IqT06OfyDxRilxmXHUwMDAxZkhcdTAwMTEsXHUwMDExifHyOLFcdTAwMTBwXGZlulx1MDAwMH94tJRcdTAwMDSD6cBcdTAwMGJ1jL8y87S8kGgnyPJkkIWQIf+CYYXhb1xyzvPcdW+JXHUwMDFlXG5cdTAwMTNkkkBcdTAwMDQp4FmYaDG9XCIh+bS9ktxM8mz5zZGJXG5cdTAwMWX4I/Tg1KWCKFlS02hINqZsdVx1MDAwZuPqtFF4bpRcdTAwMWGvnd7LYe3p8MF9+ZlJuSYwXHUwMDE1WyiUknlPXHUwMDA3aYxcdTAwMTbzRCnJXHUwMDA3XHQtXHUwMDE05VJtuS6iO5Z6+HJzcvtULlx1MDAxZJbZiTN+yrHPpXPonFx1MDAxYYtU5kiNXHUwMDAxcmT1XHUwMDA1Tkd2TpT7k8p9ruf1y3llXHUwMDBmj0+bKcdcdTAwMWJTVlx1MDAxY9qo9WmkxZtcdTAwMWFcdTAwMTVX1Fx1MDAxMKFQmlCzumCTXCKGb1x0hT/361x1MDAxNc+OpU9bjYQvKzLTiSRKcCBcdTAwMTZynTVE1y6y5T2eTE7ub84yJTpcdTAwMTJH+cF3IXmzXHUwMDFhM2yUXHUwMDE3ozqUw3lbYoBcdTAwMDHk4Fgq8VFcdTAwMTkur2mG6lx1MDAxYuD6k2W4QknMOd+O3/slKjSRviuVmFx1MDAxM8dKXHUwMDExqvRcdTAwMWEmO76DqVah4L6Atlx1MDAxNJQws3yFg95cXFx1MDAwMFx1MDAxZmBcdTAwMGb4otaMKClcdTAwMTDWeFx1MDAwYvxdXHUwMDEwk37HTEpcdTAwMDL+XHUwMDAzQzFcdTAwMDFv6KVFpMRUYylcYkAwuqpccrxcdTAwMTCtONj/VPD304lXao6Ob177hcfJ/nF9PD6b3MTyd2xcdTAwMTFNXGKnQEPMWlx1MDAxMKTm+PCUvVx1MDAwYlx1MDAwYkRLXHUwMDE4i7actSd1Zrk+3JkvXHUwMDE5YyDLnHLCkVx1MDAxNjCWQfJh1lx1MDAxOYxcZlwiKEOaw2xpzlwiffpSf4FZXHUwMDEyIVx1MDAwNPZU+ZVcdTAwMWI6mHlzXHUwMDAwq5PgI2DwJN5cdTAwMDaPffQ8QizwKrSUzH8gm3+aJlx1MDAxNjxcdTAwMWZcdTAwMDVT8dHDXHUwMDEykWuOKGaDx/1cYj32V7gyicG55JVZSmpcdDNOV9eIy+UglVx1MDAxYVFrQDjD0eBcdTAwMWNjVsRAf5lcdTAwMTJkK6X5JOPMWKVfamg/R0C7lbadjig0T0xfa6FcdTAwMTl462tYfiYvXHUwMDA3+dtcdTAwMGL12sxcdTAwMWU/ti5e3VPV5unGucmhWFx1MDAwMsesW1dg9Pnisumvo5p4bpqX+VCUMU1cdTAwMTFKo1x1MDAwZjVcdTAwMDAoXHUwMDAwbHeWhKG3heVEXHUwMDFlXHUwMDBi7CBcdM1cdTAwMTRmXHUwMDE4lIZYPVx1MDAxNDDgKveA8oruu4fouClr9Xz1PuVoxlx1MDAxNFtcdTAwMWPHwZlcdTAwMTkrzcKbIXzhuodQudJcZtWCxcjRe71cdTAwMDbiQlx1MDAxML3JysXfbJ+TyFx1MDAwMJkjMzc26aJFyyO8OrlmT1x1MDAxM4w1+Eirxylcbpfnp/bxfeG5ed27v840XHUwMDFmVbZTSrmYIclcdTAwMTNKUFx0XG5v95OSXHUwMDAwL7BWIZFcdTAwMTC/X4CXsUSlTsxKXCK0zsrLdoZ3KtdnhezPXpGS05Pehd3pplx1MDAxZG3AxeOKPTLU4vKDnXU2XHUwMDBm8pIoumKqRJVcdTAwMTJcdTAwMWGcuzRcdTAwMTJcdTAwMTRcdTAwMTPk7T9XO86w9f1R3uTt2FByukJpTjhfo3p/+fKZVKJZXHUwMDAxQyEmLVx1MDAwM1x1MDAxZbRBz2KkzazRJCDPSFCTPVx1MDAxMOF+fdVcdTAwMTJNpLSWnEhBlIopXGIxa/HAKSBcYplcdTAwMGJcdTAwMTe6Ma1cdTAwMGahlFx1MDAxMTkveL8yzrZ814OdhTw5IZRjKbgmXHUwMDFjazm3RnYnXGK0mU1cdTAwMDGBMCpcbrPAsJxesL0lmlxiXHTDXHUwMDA0kVx1MDAwNoKkXHUwMDA0ICSau8fMwuItdVx1MDAxYenOXHUwMDE2lmnG4sNvjkAjXcQtWe8kL1x1MDAwZYevNfU5a1jR+FV56dY7QlpMXHUwMDAxYeCcYI7ncphvelx1MDAwN1s+bVx1MDAwMoNcboqHb6VAxyyIpkxo4v87t6xlTu9cdTAwMDB/45xJ4/YvduNN73CmuZxfXHUwMDEx8yvVzvJdLFx1MDAxNtVcdTAwMGVIrlx1MDAwMs9Aclx1MDAxM1ZcdTAwMDbBiko4t5CkXGaZ3TSYSTi9XHUwMDBi1rbUXHUwMDBldEpQXHRCrCSm3K/XiNM6alx1MDAxYez8XHUwMDBlrVx1MDAxM4tcdTAwMGW/OVx1MDAwMox0aZ2kbTGZTNzcR2HjjzC9ejymliGZK3KRvWHy5PG1WaiOrtheupWOTCpxzWAqrXCuOaxqkH9spGpcdTAwMTaiPEGdq0TWouP4rlbMXHUwMDBlXHSM/1x1MDAxZuw3uzg05phccsr3idSHm1AmXHUwMDA265NX/lwiXHSUTrA11prR/qTqVsulunt52Wx7XHUwMDBmXFzeZlx1MDAxZtItT1x1MDAwMlx1MDAwMVxy1DFZqVxmJsxC25KnudUmgammYSEyZZxcdTAwMDKMXHUwMDA1/76FXHUwMDBmc1x1MDAwZfmCM1x1MDAxY8zIbPn69f5eaX/+21x1MDAwMz9YLVxc/WVR+kSjoFx1MDAxMvdcbsFcdTAwMTRcdTAwMTHwO9DcXG73j1D8c/R4WT987JFh+7GS61xcn7fz/ZRTUY1cdTAwMDU4M1x1MDAwMsVtXHUwMDE4XHUwMDAyZkEu34PhXHUwMDEzVmExVLRgXHUwMDE2XGb/X6xcdTAwMTacglpxXGZWXHUwMDFjs1xy4oa/mWnIhFx1MDAwNshcdTAwMWPzQ/NcdTAwMWLYXHUwMDA3mVx1MDAxOFtcdTAwMDK3VTHw5tcoINR2bkzzbmbsVvOj/vnBzf3F8Ns2qdt0a1xiU7VcdTAwMTCtXHUwMDFl9M1cdTAwMDOLQPyrJEvGhZCi9oFcdTAwMTlXQqs0mofr/Zvj/dtUmFx1MDAwN76kXHUwMDE2UWiwXHJ6ndKb8/P7e1wib/SLXHUwMDE4ikbFXHUwMDFlok6rmnKnwVx1MDAwND/BXHUwMDFijKuCXHUwMDA1+6AstDWeg5bUv/o0OZSEmFW+anDkMPreqMSv8Vx1MDAxZcJcdTAwMDNkjrmh+VxybFx1MDAwNElkX1x1MDAxYXGpQEWublwi7opnhe6wfI3OftZeTnpFV1x1MDAxZuXv0i1dmmlLa1x1MDAxMZNNMzaCbIt8reZCXHUwMDEweL9km2RcdTAwMTW2biHKhfx3O1x1MDAxMIk7rqjEhdOKaUooRmtsNpgr3Z11n3rZXHUwMDFhk4/49ZVfdlx1MDAwYt+2WfnGXHRhYDNJXHUwMDEwZuiDTdw2x3BcXHVmXHUwMDE0w0gxhoz1SiGKXHUwMDBi5ezZcfFoOzD+MVX3u5V+v+iZxUXvYerdXHUwMDE3x1x1MDAxZWXjxzlcdTAwMThqXHUwMDE4J6c+/aSpev/nxz//XHUwMDAzX+6MLiJ9CI/CDpvm mark-prtriggersGITpull-requestcommitsmergecommitpvm updatemakesrelease commitpvm publishCREATEREVIEWUPDATEPUBLISH

пример сценария релиза по мержу в мастер

В данном случае сценарий выглядит так:

  1. Создаем мерж-реквест
  2. Запускается CI-задача в которой pvm говорит, какие пакеты обновятся и как, если замержить этот мерж-реквест
  3. На мерж в мастер запускается pvm update, который уже на самом деле обновляет пакеты и создает новый релизный коммит и тег
  4. На релизный тег запускается CI-задача, которая публикует обновленные пакеты и сообщает об этом в slack-канал

Т.е. по сути мы получаем такой flow: create -> review -> merge & update -> publish.

Важно понимать, pvm нас никак не ограничивает в настройке процесса доставки релизов, он предоставляет "кирпичики" или команды, с помощью которых уже можно выстроить тот или иной процесс доставки релизов. Например можно не создавать релизный коммит и обойтись только релизным тегом.

Рассмотрим ключевые "кирпичики" с данной схемы.

mark-pr

pvm mark-pr – позволяет понять, что произойдет с пакетами если мы выполним команду pvm update. Команда pvm mark-pr добавит в мерж-реквест комментарий с подробной таблицей, какие пакеты будут обновлены и как:

pvm mark-pr example

Тут важно понимать, что данная команда делают превью будущего релиза, который будет основываться на всех изменениях сделанных с предыдущего релиза, а не только тех, которые есть в данном мерж-реквесте.

update

pvm update – команда, которая делают всю основную работу – обновляет версии, ченжлоги и фиксирует эти изменения в репозитории в виде релиза. Делает она это на основе изменений, которые произошли с момента последнего релиза.

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nNWZW3PaOFx1MDAxNMff8ylcdTAwMTj6uK2r+6Uz+5CEJM2llCZcXNrudnZcdTAwMWNbgIuxXHUwMDFk24RLp999ZYdiXHUwMDAzdsqSkGH9wGBcdTAwMWTLOpJ+568j+cdBpVKNp4GqvqtU1cQyXcdcdTAwMGXNcfV1Un6vwsjxPW1C6X3kj0IrfbJcdTAwMWbHQfTu7dushmH5w4daylVD5cWRfu4vfV+p/Eh/c+2YYeg/NJFcdTAwMTZnzVAoVkvrvpc2XHRcdTAwMTHDlEKEwOJcdCeq6bZiZWtz13QjlVmSoiqv9U993Pp+XHI/jFx1MDAxYupmXHUwMDEy1rBqZ812XHUwMDFk172Jp27qUuTrbmS2KFx1MDAwZf2B6jh23NdWslJeViv0R72+p6Kk65mbfmBaTjxN+lx1MDAwMLJS0+ul78hKJslcdTAwMDBcYmxgLiRgiC5cZmlVKlxyXHUwMDA2KGGC01x1MDAxNW+OfddcdTAwMGZcdTAwMTNvXkHBiHmb+XNrWoOedsqzXHUwMDE3z8Sh6UWBXHUwMDE56lx0yp5cdTAwMWL/6idnhlx1MDAwMMtt9JXT68eJo1x1MDAwNlx1MDAxNkjAnF+RSodeIFwiqeSEL1xmSZvBuZ1cdTAwMTLwbXXs+mZcdTAwMTjMx6ia+pbzN7k9ecCnoLpcdTAwMTnGR45nO15PW7yR6y5syrNLLIHv5FFMruxfJVx1MDAxYv30ZvH/2+vCp1x1MDAwYsYnud4shiZ7wcHKi6quXHUwMDE5xcf+cOjEXHUwMDFh2Ebi1aqraVx1MDAwN1x1MDAwZpPQ6CvTLuhi3jaPodT683VxmCnXdYJIXHUwMDE1XHUwMDA1XHUwMDFhXHUwMDExpCzQXGKkmkCIyMZxdnVcdTAwMTfXXHUwMDAzc3Z3eXbiwvrH00P/bHi+TZyhLeJcZm5cdTAwMTVnjFx1MDAwMYNcdTAwMDNcdTAwMGUwXFyNMyxcZsKkjiRcdTAwMDFcdTAwMTPJYU+Ktlfdbnc9zDA1OMXLMb5cYjPMXGZMXHSVWup0SCEmVsNcckrMKVx1MDAwN1x1MDAxNMP/XHUwMDFlb1Fy83i8bUuUpLSMKFxmdWeS/mxM1LVcdTAwMGZcdTAwMTT/XHUwMDAyZ7OLL+2rN008Zu9r4X5cdTAwMTMlXHUwMDE5NiSGjKxLN5aGkExcIqiJSZDCpUhRS1x1MDAxMmC/PFJa0SClWsR3gdRCXHUwMDE0q8NcdJfRffuic9dqnrXIhTO5OybVX1L5KHmxmsRF2EHASjNcdTAwMDZIXHUwMDEx1f2SbGPuXGL/XHUwMDE41jp1Me1cdTAwMWSdf+/Xp/6lXHUwMDE40JfibruMQc+qUVx1MDAwNFx1MDAxZEBcdTAwMDZcdTAwMDV8eb1+Ltpyi8dcdTAwMDKyXFxeNqdKYkIkXHUwMDA2gO5cdTAwMDKqrHrX9+JcdTAwMWJnls44Wyo9NYeOO12K6Fx1MDAxNKMk8dBcdTAwMTiYkXpzj/Ldj5TreOmLyFKNQ9fpJbBVXdVdpjB2dP67MMd+sPWKXGZcdTAwMDEsJ5lDpHM/iNHGJFx1MDAwYlx1MDAwZtU+tq3RqbxcdTAwMWNcdTAwMWPX6furi66A+62gXGYwg0BcdTAwMDYgLVJQrlx1MDAxOef7q6A6zqSOt5zW/G9cdTAwMTRU4lLuXHUwMDA0XHUwMDAzXGJrddk8XHUwMDE3bP8zjHudXHUwMDEzcthvfek3ep9uaDtsbMNcdTAwMWR8Me4oZVx1MDAwNpN0PVx1MDAxNVx1MDAwNFDzqKf0sS3XXHUwMDA2vD265SraaVx1MDAxNUgpk1rJ8U7gei4lhS+qpKU057ahKzRr+dBcdIHGeWOYx03SOFx1MDAxZo3HtVvvZty/b3dk7Hzab5hcdTAwMTnVOsY5Jpgv0yyhgVbOXHUwMDE1nvv4QKB1lslcdTAwMWHLkEm9W6ZcIiei+0PzyJvzbP/tWX09xCoqxFx1MDAxYb8w1qWpXHUwMDAxYZBpccCb57ghb8ZBa9D9fnXUOImG18Rcbm17z6EmcIllrcw7g1x1MDAxOIJ1iNdcdTAwMDVcdTAwMTlivaNjguwlxH+8qFx1MDAxMofKilx1MDAxZqatgFtcXJ7UUlx1MDAwNFx1MDAwMFx1MDAwNPmDqN+R+5VcdTAwMWZKOsP8s/hMvLtByzr3QbTf5HImjKKMVnBcdTAwMDNjKZZUepVkneoqaT2BZIxcZi6RLD7OJTrpWdk3ztmmXHUwMDAyYFx1MDAxZEQ56F/sfKk8Ry1d1TGgXCJZ2PDGXHUwMDE4Qfv6ZNA8u/x0LVx1MDAwN51cdTAwMGaz+uRDw5ruOUZcXG+Ailx1MDAxNnVmXGIqd1xuXHUwMDExkFx1MDAwNXq4xlxmQlx1MDAxNGB9oZ0wUySHOTx/I4fB/bAyXG5sM1bFuiiWaiyEz9JcdTAwMGWo8Fx1MDAxMWVcdTAwMWM6tq3naiugafmCLlx1MDAwMOBUis0/c11Nzf5cdFx1MDAwNbTZcabEaca9q1x1MDAxMTvdc56JMHTcLqObXHUwMDAyLVxyTdxuVXFcdTAwMTOeoSRcXEfbbrbzT+S5ZHkvwXhXXHUwMDE5aS6xXzt3hYwwxIHYXHUwMDE44duv4ehcdTAwMTRetlx1MDAxYu33VlibOZ9bNcL2XHUwMDFiYYmgsX5iXHUwMDAwXGa6vNg/O75cdTAwMDV7rFx1MDAwMnw5XHUwMDAxgFx1MDAxMsR2s4Y/jd8/d8Pvwfxra9VcZoKbOFH7d3Oaq/eOXHUwMDFhXHUwMDFmXHUwMDE1XHUwMDFmXHUwMDA0ZmeBeoRcdTAwMWN73pnky+tB8s6f/1x1MDAwMmlvVPIifQ==release-v2release-v1unreleasedchanges+pvm update+=

При релизе обязательно создается релизный тег, и опционально, релизный коммит.

При этом команда pvm update заточена под работу в CI/CD окружении для доставки изменений в центральное хранилище кода – она создает и пушит теги и коммиты либо через Platform API, либо через git. Подробнее эту команду и вообще процесс обновления и как на него можно влиять мы рассмотрим в отдельной [главе].

Если же вы хотите произвести обновление локально, достаточно добавить подкоманду local в начало:

yarn pvm local update

publish

pvm publish – команда публикует все пакеты, которые поменяли свою версию в используемый registry, а также оповещает о публикации в мессенджеры если задан токен PVM_SLACK_TOKEN или PVM_MATTERMOST_TOKEN и PVM_MATTERMOST_URL через переменные окружения. Также понадобится настройка notifications.clients_common_config в конфиге pvm, например такая:

[notifications.clients_common_config]
channel = '#temp'
author = { name = 'pvm minion', avatarEmoji = ':deciduous_tree:' }

Подробно рассмотрим публикацию в отдельной [главе], сейчас остановимся на этом и перейдем к другому, альтернативному процессу релиза.

Flow только с релизным тегом

В предыдущем flow мы использовали релизный коммит для того, чтобы фиксировать изменения версий пакетов в исходном коде и обновлять ченжлоги. Однако если у нас нет потребности создавать коммит для доставки изменений с релизом в основную ветку, можно обойтись и без него:

eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nOVcXFlz4khcdTAwMTJ+71/h8L5cdTAwMGU1dVx1MDAxZvNmwPeFbXzubnRwiMNcdTAwMDaEQVx1MDAwNsxE//fNkm2EkIRlbNyaWEVHd6PSUar6MvPLo+rvXHUwMDFmXHUwMDFiXHUwMDFim95z39n8a2PTmdQqnXZ9UFx1MDAxOW/+Yc+PnMGw7fagifq/h+7ToOZf2fK8/vCvP/9cZu5ANbf7cpfTcbpOz1x1MDAxYsJ1/4bfXHUwMDFiXHUwMDFif/t/z72nMlx1MDAxOLgvr/BPXHUwMDA3r2FcdTAwMWEvnj1xe/4rOdWSYaLM7IL2sFxir/KcOrQ2Kp2hXHUwMDEztNhTm6rY2nHZ5f05OVx1MDAxZZeci8mgyJyr4K2Ndqdz4T13/Fx1MDAxZVxyXfiKoG3oXHLcXHUwMDA357pd91r21Vx1MDAwYueT7lx1MDAxYbhPzVbPXHUwMDE52i9cdTAwMGa+w+1Xam3vXHUwMDE5zlx1MDAxMVx1MDAxY5yt9Jr+M4IzXHUwMDEz+CU0Q0xpgyVcdTAwMTWzXHUwMDA2/1ZhkMSCS63EQm9cbm7HXHUwMDFk2N78i2jJK9WgP9VK7aFcdJ3q1WfXeINKb9ivXGZgfoLrxq/fqbBGjGoy9+6W0262PNtPpCmnJPR6x1x1MDAxZno4b4RRXFzNXHUwMDFh7Dv7+3VcdTAwMWZcdTAwMDD/XVx1MDAxY7tWZdB/XHUwMDFko02/b3P9tT+3X9BcdTAwMTNze2Xg5du9ervXhJbeU6cza3N69YSWvtueR6I9gv9tXHUwMDA0o+//mP3/v3/EXlx1MDAxZFx1MDAxZFx1MDAxZnvkgqFcdFx1MDAxZfBj4UGbncrQK7jdbttcdTAwMDPAlmyvXHUwMDE2u+p/4JaVjJZTqcd84nzbq1xi+a2//oiXsk6758Rcblx1MDAxOVx1MDAxM4lSRrgkXHUwMDE2Z5ylXHUwMDE2s87lqNvYkYX8z9JDu3lSOnjIXHUwMDFknaxcImb028RMSoO0VCE0+3fKOJh/XFzKXCLXvElcdTAwMTijXHUwMDFj8ZBwz1x1MDAwNIxgg1xmNTJGwlxiMYRcdJhcdTAwMTj2cVx1MDAxMVx1MDAxYtpcdTAwMWb/XHUwMDFjXHUwMDExg4lRWGG2IGN2cKQxXHUwMDBiQlx1MDAxNv9cYspcdTAwMThcbinQ4Fx1MDAwMcI+9737I3NkXHUwMDBmXHUwMDEwcsqwr36/T8ht21JcdHc6nXZ/XHUwMDE4K+RcXCbKuFFMKCpFelx1MDAxMT969E76lenj4e52h5yc7my5u93971x1MDAxMnGymohcdTAwMGKClFKMs0VcdTAwMTnnXHUwMDE4YYOpxiBRVDL5OUlvNFx1MDAxYTFiLpBcdTAwMTLMxFx1MDAwYjqTiFx0LowgXHUwMDE0jCaVOlwi7lx1MDAwNvqsMIB1LeK+KqKgT4lWQzKuNKdUpYbUxdVOu/r04La7/Tv39OGpMS5sbWdcdTAwMWJSysC0UkGZ0Vx1MDAxYZhcdTAwMTimIVxcUSlcdTAwMTExSmHKmVx1MDAwNFxcqUXW+DVcdTAwMTZcdTAwMDRcdTAwMTiIYVx1MDAxNN5CXHJWRlx1MDAxMVx1MDAxNlx1MDAwNZhGglx1MDAwMVum0seXwjJcdTAwMDIwQVxyXHUwMDE361x1MDAwMthMP25OO1x1MDAxN4OzvS3vjFTzXHUwMDBm/fJ2mYhif/NNa66KQ01MXCJcdTAwMGWpIEyDnUiv2vDkZL91W2s1Tk4v2PRwdFnvnqls49BojEyEpvj3Mlx1MDAwM3OvXHUwMDAwnFx1MDAwMFx1MDAxZqvb2KcwuFx1MDAwZd1m+TODaVx1MDAxMuuF3vOlLk8mdGv3cermb1tysr9Vmn5cdTAwMWF6yiRDXHUwMDBmRp1TRlx1MDAxNElccr2b7elhXHUwMDA1N87GLXZ3cDEg3evx8UG2oaepRpiCgCmWoFx1MDAwMjWDYSCv8MusXHUwMDA2ZFxcgLWSwqxcdTAwMTmFvP0wOent5q9cdTAwMGXulXG3XGbZXHUwMDFlXHUwMDA082Hv7pWqj7rQOL6+KVx1MDAxNnYv2XH14rjyXHUwMDA1XHUwMDFhkiXDlDNKNSiI1DCtXHUwMDBmx1x1MDAxN/flvbNcdTAwMWQ6vt6/XHUwMDExh83RoDnMOEwluFx1MDAwMIJoTJNgqqTGhFx1MDAxYpZtmHKtXGZcdTAwMDGlvl6U3jC6x/qtm3NZ2PMuOzt3+c5WYVx1MDAxZaX9nlx1MDAxOW6Vz3dcdTAwMDftbvvaeN388fBxlFx1MDAwZaWJkT4qRFwiRimHXHSE2UmP0Xim8U1cdTAwMThdLVx1MDAwNqExRlx1MDAxY+ZWSslcdTAwMDRcdTAwMDBFL2BcdTAwMTQjP0CBjeSckCVeXG6oWsfUVrDkXHUwMDE4XHUwMDExXHKmmHJcIjBQXHUwMDA1blRcdTAwMTSilFCkXHUwMDE1N0ZE+/GqSjE4XHUwMDA2XHUwMDFhTP7HQfqJ8N/fXHUwMDAxOp23O953KyxcdTAwMTTc2tPw5eOJXHUwMDAxgsJAQoVcdTAwMDS+XHUwMDE0kGH7XHSVPlxcI0A+NZNSXHUwMDBiaTBcdTAwMDZ98nrBr1mvQlGRpD7tjOWWq04r4+cntYOPL1x1MDAwZqf1QTW+T1x1MDAwMrSVZFx1MDAxYWvFmCZcdTAwMDF9mnWJ8NdcYmSkK19cdTAwMWGGySVjw2+OwlwieOKPhSf/jtDnwKl5L2JcdTAwMTejesicol1QPVx1MDAxNGOqKFbp/djlk5tJzaOUQEQsZlx1MDAxOHLEIG10KF6ygqpZmmAgXHUwMDAwXHUwMDFigVV8hkEwxFx1MDAxNmKyb2ZcdTAwMTAsJMBszS7Dclx1MDAxYpJI1r7GTnrOxIvDquBJUFx1MDAxNVxumFx1MDAwNdCK9K7usTmu64fcXHR2XHUwMDA2jelot16v0Wudbahcbs2R5DpcdTAwMTLEy3FAMGWfXHUwMDA1a7xdXHUwMDE0OlxuTopcdTAwMTdBqbBcdTAwMDaWXHUwMDAyPVhcdTAwMDcqg9tcdTAwMWJuz7toT1+ibKGzO5Vuu/NcdTAwMWPiyD6K4Fx1MDAwNYX9P1x1MDAwYsX5L1x1MDAxZjp+Msjaj9DFW51208Jss+M0wvjz2rVKZ9bsuf3lXG43XHS/hC2heYJcbvNcdTAwMTGHOde4XHUwMDFj3dZvXFxygZ9cdTAwMTmdXHUwMDE02neN651sXHUwMDAzWGnwRFx1MDAxOFx1MDAxMyaCYIZcYqi0+UTH1yHYxDhcdTAwMWJRXHUwMDA0c8aA1tD1OMGfRHB/1N3oVlx1MDAwNlx1MDAwZrn+4EM4rkFcdTAwMGacwVx1MDAxMiR32/U6zNOKypgkglx1MDAxOVNt/MBWajSbq0bbObp7Pj0p186v+8X87nink3E0M46iUUebcOOfJlx1MDAwZfFIlqmQXGY4ZphcdTAwMGKVRSR7g3azXHRgyYY6polcdTAwMDBcdTAwMDZ/1Do6XHUwMDFmoL7m3jtcdTAwMTI54tZcXHrFz8/K/VHVPGVcdTAwMWLAQofdbIJNXCJmV4+QyzSYJZRcdTAwMDPZpWLNOf2VMLu7X85cdTAwMDRcXGVyXHUwMDFjXHUwMDEzPFLw2qVMXHUwMDBm11NSbeTI2DW02WRH3t1R3ci9bMNVYoJcdTAwMTb9NFxuflx1MDAxYdf405VgXHTMXHUwMDAxp8EuuMlGXHUwMDAxN1dZJL/9p04nN3BcdTAwMWWfnKGXXHRcdTAwMTQn1zQq5oehtUhccuJe9WavNLxo7NZIyTvayYtHz2XZXHUwMDA2sVJcblx1MDAxMVxumnaRXHUwMDAyU2h4rcn5eiCnc+KI4VJiQ0xcdTAwMTaBXFzzY2bZIFx1MDAwZZolq2KJuaJGpVx1MDAwZkRMyZFpnVx1MDAxZrhj8ODvj1x1MDAxZp3Jlmp/W+3HaiA21CAsJY9cdTAwMTbmXHUwMDEygVx1MDAxNs9/XHUwMDE5iLmJgphHtTHhjGp4R1x1MDAxNqlE11x1MDAxOTSd//ResFx1MDAxY1x1MDAwYmW2Jignpp5cYuaJQVx0XG6GXHKoXHUwMDA11enRXHUwMDFjX2qQbTRcdTAwMWKDXGKTtlSJKiCiYUQziTimWFxigm2uODk9+onMXHUwMDEzY9hcdTAwMTJgjjUlXG7TXHUwMDE4L09QhIFjaNtcdTAwMDX4I6KlJFx1MDAwNExcdTAwMDdcdNUx/s7M0/JCoo0gy5PDXGJjS/4lJ5rA31x1MDAwNpznueteXHUwMDEyPVxmJsgmgSjWwLNcYjXy9YqE5NP6SnJzybPlN0cmKnjgj4VcdTAwMDdnLlx1MDAxNcTokppGS7JcdOPpPYyzw0bpqVFuPHd6o93a4+6dO/qZy7gmsFx1MDAxNVt4ISXzllx1MDAwZTJcdTAwMDSH80RcdTAwMTnJXHUwMDA3SSM1XHUwMDEzSq+5LqI7UWY4ujq4frws717yg/bkscA/l85hMlx1MDAxMW/a2KqpuTT0u3Dbc1xu8rI/rdxcdTAwMTZ6Xv+yqJ3h/mEz43DjXGbFgY2hT1x1MDAwMy3Bn42raYgwKEOZXVxcsEpccsO3RMIr9XrOqzRj6dNaI+FLisyMTlxmhlx1MDAwYlv0XHUwMDA02jP9Ur1zXHUwMDE3O+qWTKdcdTAwMDe3V0e5Mlx1MDAxYsu94uC7oLxqXHUwMDE1rkKcmYVcdTAwMTTOW1x1MDAxNS5cdTAwMTcmKINMrsJcdTAwMTU1w3F9XHUwMDA1XFx/slxuV2pFhFx1MDAxMGtye1ek5ZQkL0szRtna+lx1MDAwZiRcdTAwMGLjtXemtSM4JqBcYiWj3C5MXHUwMDExoFx1MDAxMkO44lx1MDAwNFx1MDAwMVx1MDAxMzRcdTAwMDAsrSQmhqyBmWvEgcNcdTAwMTlqXHUwMDE3MCjM4kLZithsXHUwMDBm8EBbllx1MDAwMeCKLldcdTAwMDP3wmhcdTAwMDGGPVx1MDAxM8T8cOqVm+P9q+d+6X66vV+fTI6mV7HEnCBcbl8uXHUwMDE48Fx1MDAwYrvIXHUwMDAz62j9lUSKXHUwMDEyIFx1MDAxZpj481x1MDAwM/xoOS1P6lx1MDAxNFeng+L1iX5u5vfvWyfP7qF+XHUwMDEwXHR1aqBcIlxieFx1MDAwMJjammVcdTAwMWFcdTAwMTSzzjpcdTAwMDWKXGIkg4AnJO2FLNKlL/VcdTAwMDdcdTAwMDTCoNxcYjfar8wwXHUwMDAxXHUwMDAw7MHsQjlbM/Y2hvxd/8LyPKDZisJcdTAwMWYtXGbT88+LoC1b3kVivEwkr1x1MDAxNGDEaC7kXHUwMDA3XHUwMDFji+VcdTAwMTDOpC4zXHUwMDA2I1x1MDAwZSiJXHUwMDA0zDhHXHUwMDExq/ll6ounSr0pLrjWdD2lO2n9h8+xwm7lwclGZHjJllxyjFx1MDAwMNWHsU5cdTAwMWZLW65cdTAwMTYzXHR0uIKjxXycfyvFVrGF91P4Mlx1MDAwMihoXHUwMDFhpFx1MDAxYsa5XHUwMDAx/37NpZPLuZZcdTAwMWRmoVx1MDAwYne4qNm2u4v3m6pWL1Zvv0hcdTAwMTRGXHUwMDE0gVP5rbKwhMMuXHQoXHRwMFx1MDAwNaMmfbYvftgyLlx1MDAwZVx1MDAxNOw51tGKN1wiXHUwMDE4XHUwMDEycn01b1x1MDAxYWFNQztcdTAwMDeEN1eQnIpw6GFWiYGFlNSssiZxXHJ8NTU1JFxiM0ylXHUwMDAwWqSAXHUwMDE5zvmZM2ZIXHUwMDE4ophcdTAwMTA1t2/CXHUwMDA3iWrp9PjQ2b8tPTXPe7fnuea9znfKsexcdTAwMTkjTDH4lVx1MDAxMt5n+2WMiIa1XHRGYHnXv4BcdTAwMDF8pcXopT1yhM785vdcdTAwMWWhXGZcdTAwMDInSyxuRZFcdTAwMTNcdTAwMTgp/Fop/94zYkD50o15PGaL0S6Pl5vENLBcdTAwMDEhXHUwMDAy10ikZ7XLoZVR7aZEQj2vtfbLbf1vipZrZaTCUv6WaHlqXHUwMDBlsFx1MDAxMvfkPLGekdp1W/gj61xcXHUwMDFmcqJTOT8q5X/2Llx1MDAxOD086J04nW7W4VxiXlZcXGlccvjUQr2zj9HqMaJU1JNpLVxyYZmNqfefqp32sPX9MfXkze+wTkIz0UZQIT5cdTAwMTD+XFy+WCmTaNaMIKpcZthcdTAwMTDOLHrC0U+7XCKWgjxjyWyyRi7266tcdTAwMTbEgmk3SlAlqdYx5Td25aMkimJsL1xmdeO1XHUwMDFhhzFO1bzg/U4yuXyPiTB9XHUwMDAzXG4piJLCUPBU1NyK5I0g+mm3YCScaiCbjFx1MDAxM7VcdTAwMWGn/MCCWFxmTFxyiFx1MDAwNTbAtvzsaFxmpeSIyFx1MDAxN6q3Xk6ZS8aH31x1MDAxY4FGtohdst5JXopcdTAwMGZfa6uhPmBF49dAZlvvSIW4XHUwMDA2wiBcdTAwMDRcdTAwMDUnXVx1MDAwN1xm9kXvXHUwMDEw5PMqMKigeMRayqHs8nPGpaH+v3OLiOb0XHUwMDBlXHUwMDEwPCG4slx1MDAwMZ1wN170juBGqPn1R79T7SzfMySsdkByNVx1MDAwMYUjbMpcdTAwMDBcdTAwMDQrKuFcdTAwMDJhxWxcdTAwMTKEM8604W+CtS61XHUwMDAznZLM9/FcdTAwMTRhwq+OidM6+jWM/Vx1MDAxZFonXHUwMDE2XHUwMDFkfnNcdTAwMDRcdTAwMTjZ0jpJm5BylZgg0cQ6LNykL1x1MDAxZqjlaO6MnuSvuDq4f26WquMzvpVtpaOSXG6Kc4QptJjaX1Q12D9WUjWhOHVQVawwilxyjlx0u1x1MDAxZlx1MDAwNVx1MDAxN/9cdTAwMDe7+4aHxlx1MDAxZbNB+T6RenfLz8S1qcm+g9FMXHUwMDE4SUz6NFxm60+rbvWyXFx3T0+bXHUwMDBm3p1Q1/m7bMuTxHb7xZh8Y45QXHUwMDFlLXH8MoGay35cdTAwMDW2mi1Kka2alWAtxPetM5nzyEPecDAls91cdTAwMDLOt7fK2/PfXHUwMDFlOMI6dPWXJVBcdTAwMTKtgk7cmoUwTMHxwCx9+uTn+P60vnvfo8OH+0qhc378UOxnnItcdTAwMWFcdTAwMDIwllx1MDAxMsftz1x1MDAwMnZBLd/y4lx1MDAxM2YhXHUwMDFjK1xu2Vx1MDAwNetcdTAwMDCEqzNfQa1cdTAwMDVcdTAwMDEzTvhcbpHFf5htyC1cZpA95ofmXHUwMDFmYCBUooFcdTAwMDC/VXNw5z+QpzdOYcKKbm7iVovj/vHO1e3J8Nv2XHUwMDA0XFx1J1x1MDAwZVuQXHUwMDEyrdb07Vx1MDAwM49A/KskS8XFkKL2gVtfwugsmofz7av97etMmFx1MDAwN2VcdTAwMTK3Q6KgMy2K01uH4+PbW6quzEhcdTAwMGVlo+JcZnGnVc2400CA3SBD47Y1fzFcdTAwMGZcXIZzXHUwMDAxX2ggXHUwMDEyq42p1kiQxXW8b4XGXHUwMDA2XHUwMDFjOYK/NyrxmyzEwlxi2WN+bP5cdTAwMDE2giVcdTAwMTct2s1BtF2jklq+bi6OSt3h5Tk++llcdTAwMWJcdTAwMWT0Llxcs1e8ybZ8gVx1MDAxMkbGyJh8mjVcdTAwMTJ0XewrNs9cdTAwMTCxXHUwMDExXHUwMDE03q/4KnmFtZuIrWIxV97a/VZcdTAwMWKRuMWNTixR0Nwwylxi/sDujoXyzVH3sZevcXVPnp/Fabf0bbvDr5xcdTAwMTNcdTAwMDY+k4Rhjt/ZNW91XHUwMDEwx5XeRkGMNefYkp1cZsK4dJk/2r/YW1x1MDAwZox/vCr8zUq/f+FVPPvQXHUwMDE3UG+O2s44XHUwMDFmP87BUMM4teuvn/Sq4H/9+PU/+LHWtiJ9CI/CDpvm mark-prtriggersGITpull-requestcommitsmergecommitpvm add-tagmakesv2.3.0pvm publishCREATEREVIEWADD-TAGPUBLISH

В данном случае используется команда pvm add-tag, которая не создает новый коммит, а только подбирает новую версию тега и выставляет ее на мерж коммит в основной ветке и заканчивает свою работу на этом.

Далее происходит публикация пакетов в задаче запущенной на релизном теге. Pvm перед публикацией будет подменять версии пакетов на версию указанную в релизном теге. Данное поведение настраивается явно в конфиге pvm:

[versioning]
source = 'tag'

Итоги

В pvm есть 4 основных команды для построения процессов обновления пакетов. Одна для ревью, пара для фиксации релиза и одна для публикации. В следующей части главы рассмотрим примеры интеграционных файлов, реализующих автоматический процесс доставки, для конкретных платформ.