Как лучше хранить bat-файл сборки в VCS, ведь там локальные пути?
У нас есть командный файл компиляции. Допустим, запустить QMake, затем JOM сборки, затем подписать, собрать инсталлятор, залить на DropBox…
Проблема в том, что каждый шаг требует чего-то машинозависимого. JOM требует указать количество ядер в процессоре, да и пути зависят много от чего:
• должности разработчика: программист, вебист, инженер по выпуску и «мимокрокодил», взявшийся прогнать тесты взамен инженера, будут иметь совсем разные пути;
• метода разбиения винчестера;
• это его личный ноутбук, машина, составленная из актуального железа или из хлама, который нашёлся на складе;
• сколько хранилищ DropBox в его распоряжении.
Как вы решаете этот вопрос?
Необходимые параметры вывести в батнике в переменные, присваивать переменным значения где-то в самом начале, переменные тут же прокомментировать.
Далее каждый под себя присваивает нужным переменным значение.
Еще лучше - вывести настройки в отдельный батник и запускать этот батник из основного.
Кстати количество ядер есть в системной переменной: %NUMBER_OF_PROCESSORS%
Точнее это количество логических процессоров.
Многие другие параметры можно достать из реестра (с помощью reg query) или из wmic.
Хорошо, как сделать, чтобы… 1) редактирование настроек со стороны нескольких пользователей не создало конфликта; 2) update подтягивал бы новые настройки?
Mercury13:
Если какие-то настройки могут вызвать конфликт, думаю их лучше не выставлять как общедоступные. Что-то конкретнее трудно сказать не зная точно ситуации и не видя кода.
Ну тогда скрипт для каждого разработчика делайте сами, так чтобы конфликтов не было.
Либо в тексте скрипта нужно выявлять конфликтные ситуации и сообщать об этом пользователю, чтоб изменил параметры.