Re[5]: Автоматизация релиза
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 17.07.20 15:26
Оценка: -1
ЕМ> Я правильно понимаю, что конкретно у Вас автоматизация заключается только в сборке через MSBuild

Там можно дописывать произвольный код в процесс сборки, это удобно.

ЕМ> но Вам нравится давать абстрактные и универсальные советы?


Способность абстрактно мыслить — это полезная способность.

Если рассуждать абстрактно, то нужно что-то вроде "транзакций",
чтобы можно было откатиться на состояние до начала процесса в случае ошибки.

Для того, чтобы такое сработало с регистратором,
API регистратора должно поддерживать такую функциональность.
Отредактировано 17.07.2020 15:32 Эйнсток Файр . Предыдущая версия . Еще …
Отредактировано 17.07.2020 15:27 Эйнсток Файр . Предыдущая версия .
Re[6]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.07.20 15:45
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Если рассуждать абстрактно, то нужно что-то вроде "транзакций",

ЭФ>чтобы можно было откатиться на состояние до начала процесса в случае ошибки.

Спасибо, КО. Вы реально полагаете, что я всего этого не знаю, или просто очень хочется высказаться хоть как-нибудь? Дураку понятно, что вопрос был о конкретике, и почти все остальные поделились реально полезной информацией.
Re: Автоматизация релиза
От: Михaил  
Дата: 17.07.20 16:22
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>У кого-нибудь сделана полная автоматизация релиза — от сборки бинарников до обновления данных на сайте и у регистратора? Если да, то какими средствами, насколько геморройно было сделать и потом поддерживать? Если нет, то какие действия остались ручными?


ЕМ>И как решается вопрос с восстановлением, если в середине процесса что-то пошло не так?


У меня обычный баш скрипт, который компилирует, подписывает, заливает на сайт. После каждой операции проверяется код ошибки, если он ненулевой — то Пишет красным текстом «ошибка на таком то шаге». Каждый шаг выводится в терминал. Если что то пошло не так — например, не компилируется, то после ошибки скрипт прерывается. Исправляю ошибку, и перезапускаю.
Re[4]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.07.20 16:30
Оценка:
Здравствуйте, Черный Властелин, Вы писали:

ЧВ>Хм, а что там нужно обновлять у регистратора?


У меня там традиционно версия, URL триальной сборки (как я понимаю, это для каких-то их собственных каталогов), Final Messages, в которых ссылки на полную сборку, и т.п. Я к такой схеме привык еще с тех пор, пока у меня сайт хостился в институте у коллег, и мог упасть, например, на выходные.

По идее, наверное, действительно можно все убрать, и сделать редиректы на свой сайт. У HostGator'а аптайм достаточно приличный.
Re[2]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.07.20 16:32
Оценка:
Здравствуйте, CyberDemon, Вы писали:

CD>Сначала автоматизационный bat-ник


Их у меня много.

CD>Потом пришлось коснуться питона, показалось интересным, теперь у меня автоматизационный py-тник


Питон для таких дел чем-то радикально удобнее JS? Я недавно сделал на JS несколько локальных скриптов, не хотелось бы подключать еще и третий язык.
Re[4]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.07.20 16:34
Оценка:
Здравствуйте, Crimson, Вы писали:

C>после обновления, все проверяется, автоматизировано скачиваются файлы, проверяются хэши, загружаются страницы (в моем случае запрашиваются сервисы) проверяется на соответсвие версий, текста и т.п.


Заливаете сразу в основные каталоги сайта, или сперва делаете локальную копию дерева, которая после завершения обновления подставляется вместо прежней?
Re[4]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.07.20 16:42
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Я думаю тут важно, что версия например должна задаваться строго вручную, тогда процесс можно перезапускать сколько угодно раз с тем же результатом.


Это если на сайт заливать тупым пофайловым копированием. Но с сайтом в этот же самый момент может работать хренова гора народу, а на страницах есть ссылки друг на друга. По уму, на время обновления надо бы сайт или отключить, или формировать новое дерево в отдельной копии, а затем подставить вместо основного. Тут уже предыдущее состояние может быть важным.
Re[5]: Автоматизация релиза
От: bnk СССР http://unmanagedvisio.com/
Дата: 17.07.20 18:45
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЧВ>>Хм, а что там нужно обновлять у регистратора?


ЕМ>У меня там традиционно версия, URL триальной сборки (как я понимаю, это для каких-то их собственных каталогов), Final Messages, в которых ссылки на полную сборку, и т.п. Я к такой схеме привык еще с тех пор, пока у меня сайт хостился в институте у коллег, и мог упасть, например, на выходные.

ЕМ>По идее, наверное, действительно можно все убрать, и сделать редиректы на свой сайт. У HostGator'а аптайм достаточно приличный.

У меня с регистратора ссылка на последнюю версию (то есть, на файл без версии), также нет упоминаний о версии в тексте.
Чтобы скачать предыдущие версии, есть отдельная страница на сайте.
Я пользую плагин к вордпресс, там кнопка есть чтобы эту страницу обновить (нажимаю вручную)
Re[7]: Автоматизация релиза
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 17.07.20 19:33
Оценка:
ЕМ> Вы реально полагаете, что я всего этого не знаю

Да, вы реально не знаете, что предоставляет вам ваш регистратор.
Иначе бы не было вопроса — есть у него такая возможность или нет.

Реализация закачивания в другую директорию с атомарным переключением
от старой версии к новой версии — это то, что должен был вам предоставить
регистратор, но вы думаете как это сделать своими руками.

Правильное решение здесь — выбрать регистратора,
который предоставляет такую возможность.
Или у текущего регистратора попросить её реализовать и долго ждать.

Если же у вас своё ПО отвечает за хостинг, то транзакционность должно обеспечить оно,
и вопрос о том как это делается — это вопрос к программисту, т.е. к вам.
На сервере-на хостинге делаете демона, который обеспечивает API с транзакциями,
на компьютере проводящем деплоймент пользуетесь транзакциями.
Отредактировано 17.07.2020 19:39 Эйнсток Файр . Предыдущая версия . Еще …
Отредактировано 17.07.2020 19:36 Эйнсток Файр . Предыдущая версия .
Отредактировано 17.07.2020 19:34 Эйнсток Файр . Предыдущая версия .
Отредактировано 17.07.2020 19:33 Эйнсток Файр . Предыдущая версия .
Отредактировано 17.07.2020 19:33 Эйнсток Файр . Предыдущая версия .
Re[5]: Автоматизация релиза
От: Crimson  
Дата: 18.07.20 14:46
Оценка:
ЕМ>Заливаете сразу в основные каталоги сайта, или сперва делаете локальную копию дерева, которая после завершения обновления подставляется вместо прежней?

Файлы именуются program_installer_versionnumber.exe
соответсвенно пока в бд не появится запись о новой версии файл никто не качает.
Re: Автоматизация релиза
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.07.20 15:51
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>У кого-нибудь сделана полная автоматизация релиза — от сборки бинарников до обновления данных на сайте и у регистратора?


А что ты собрался обновлять у регистратора? Не, я понимаю, есть варианты, когда ты загружаешь туда списки прегенеренных ключей, но вообще это решается. У PPG есть возможность вызвать колбэк с твоего сайта, который и сгенерит ключик. Думаю, у других регистраторов аналогичные возможности тоже есть, 2020 год уже, всё же
Маньяк Робокряк колесит по городу
Re[2]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.07.20 09:00
Оценка:
Здравствуйте, шароварный желудь, Вы писали:

ШЖ>похопэ скрипт


Локальный, или на сервере? Если на сервере — сборка тоже там?

ШЖ>ребилд, защита, инсталлеры, подписи, новости, сайт, и т.д.


Сайт отдает новости и бинарники из базы, или при обновлении туда загружаются отдельные файлы, правятся ссылки и т.п.?
Re[2]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.07.20 09:03
Оценка:
Здравствуйте, NWP, Вы писали:

NWP>Я как шароварщик-одиночка, однажды осознал, что сборка и публикация дистрибутива стала занимать у меня неприлично много времени.


Такая же фигня, потому и поднял тему. Дело даже не во времени, а в количестве взаимозависимых сущностей, в обработке которых важно ничего не перепутать.
Re[3]: Автоматизация релиза
От: шароварный желудь Интернет  
Дата: 19.07.20 09:25
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ШЖ>>похопэ скрипт

ЕМ>Локальный, или на сервере? Если на сервере — сборка тоже там?

Локальный, запускаю в консоли, все сообщения/ошибки перед глазами.

ШЖ>>ребилд, защита, инсталлеры, подписи, новости, сайт, и т.д.


ЕМ>Сайт отдает новости и бинарники из базы, или при обновлении туда загружаются отдельные файлы, правятся ссылки и т.п.?


Сайт практически весь статика, есть несколько включений в виде asp.net контролов,
сайт полностью пересобирается локально, все ссылки, новости и т.д.,
там свой простой шаблонизатор написанный тоже в нулевых, не вижу там повода для бд.

ну и когда все скриптом собралось/перегенерилось, коммит с локальной машины в SVN,
на сервере апдейт из SVN и синхронизация в wwwroot
Re[4]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.07.20 11:08
Оценка:
Здравствуйте, шароварный желудь, Вы писали:

ШЖ>Сайт практически весь статика, есть несколько включений в виде asp.net контролов,

ШЖ>сайт полностью пересобирается локально, все ссылки, новости и т.д.,
ШЖ>там свой простой шаблонизатор написанный тоже в нулевых

Шаблонизатор, как я понимаю, для создания итоговой HTML-разметки? Не напрягает писать текст в таком формате? Это ж, по сути, как HTML вручную писать.
Re[2]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 25.07.20 11:11
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>А что именно обновлять у регистратора? У меня PP, ключ генерируется на моем сервере.


У меня PayPro и Avangate, но приделать проверку ключей никак руки не дойдут — покупателям до сих пор дается краткая инструкция по скачиванию полной версии, с приватной ссылкой. Как это будет правильнее сделать без обновления описания продукта у регистратора — редиректом на свой сайт, или отдавать регистратору инструкцию под видом ключевой информации? Страницу текста ж оно потянет?
Re[3]: Автоматизация релиза
От: bnk СССР http://unmanagedvisio.com/
Дата: 25.07.20 18:42
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, bnk, Вы писали:


bnk>>А что именно обновлять у регистратора? У меня PP, ключ генерируется на моем сервере.


ЕМ>У меня PayPro и Avangate, но приделать проверку ключей никак руки не дойдут — покупателям до сих пор дается краткая инструкция по скачиванию полной версии, с приватной ссылкой. Как это будет правильнее сделать без обновления описания продукта у регистратора — редиректом на свой сайт, или отдавать регистратору инструкцию под видом ключевой информации? Страницу текста ж оно потянет?


Я бы в таком случае отдавал страницу текста вместо ключа. Как там редирект вообще сделать-то? Ключ же в письме приходит, допустим в ПП.
Re[4]: Автоматизация релиза
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 26.07.20 07:25
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Как там редирект вообще сделать-то?


То ли у PayPro, то ли у Avangate я в настройках продукта точно видел возможность редиректа на заданный URL после завершения обработки заказа.

bnk>Ключ же в письме приходит, допустим в ПП.


Кстати, насколько часто Ваши покупатели жалуются, что письмо с ключом не приходит? У меня упомянутая инструкция со ссылками отправляется через email delivery, и почти каждый день народ жалуется, что получил только основное письмо с инвойсом. Не могу понять, то ли это обычные проблемы рассылки, то ли чрезмерно бдительные почтовые серверы прибивают письма, содержащие ссылки на EXE/ZIP.
Re[5]: Автоматизация релиза
От: bnk СССР http://unmanagedvisio.com/
Дата: 26.07.20 09:28
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

bnk>>Ключ же в письме приходит, допустим в ПП.


ЕМ>Кстати, насколько часто Ваши покупатели жалуются, что письмо с ключом не приходит? У меня упомянутая инструкция со ссылками отправляется через email delivery, и почти каждый день народ жалуется, что получил только основное письмо с инвойсом. Не могу понять, то ли это обычные проблемы рассылки, то ли чрезмерно бдительные почтовые серверы прибивают письма, содержащие ссылки на EXE/ZIP.


Периодически. Но тут я сам виноват — мои письма шли в спам.
У меня записи (SPF, DKIM) на namecheap "слетели" после того как выключил CloudFlare.
У них кнопка есть в cpanel "починить", которая их настраивает ("Email Deliverability"), нажал — почта заработала (в спам перестало идти)
Отредактировано 26.07.2020 9:36 bnk . Предыдущая версия . Еще …
Отредактировано 26.07.2020 9:35 bnk . Предыдущая версия .
Re: Автоматизация релиза
От: zverjuga Беларусь  
Дата: 26.07.20 10:25
Оценка:
jenkins?
проклятый антисутенерский закон
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.