#powershell #automated-deploy
#powershell #автоматическое развертывание
Вопрос:
Мы начали использовать TFS2010 в компании, в которой я работаю. Мы создаем веб-приложения для электронной коммерции (торговые сайты). Я создаю пользовательский шаблон для развертывания веб-проектов после сборки с использованием шаблона сборки. Я просмотрел средство веб-развертывания, но MSDN, похоже, указывает, что оно может выполнять только начальные развертывания, и мне нужно иметь возможность выполнять инкрементные развертывания с помощью того же сценария.
Я подумываю об использовании действия invokeActivity в шаблоне, чтобы использовать powershell для выполнения задания, указав FTP-скрипт, который автоматически копирует выходные данные сборки на указанный FTP-сайт, а затем запускает сценарии SQL (обновления), при необходимости используя SSH или интерактивный сеанс удаленного взаимодействия с powershell. (возможно, указанный в отдельном сценарии SQL)
Есть некоторые неизвестные для меня вещи, которые я не могу прояснить с помощью Google:
Смогу ли я разрешить пользователю при постановке сборки в очередь указывать сценарий, присутствующий в системе управления версиями (например, $(source)scriptsftpscript.ps1
), в качестве сценария, который должен использоваться? Сможет ли powershell получить доступ к этому файлу или использовать его? или я должен скопировать его в каталог сборки и указать, когда я его запускаю? (Я не знаю, как настроить шаблон для получения файлов из системы управления версиями, поэтому был бы очень признателен за указатель на некоторую полезную информацию о том, как это сделать)
Если предыдущий вариант вообще не работает, могу ли я создать папку scripts в моем проекте веб-сайта, передать ее в систему управления версиями, а затем использовать BuildDetail.DropLocationRoot amp; "scripts"
в качестве местоположения для сценария и предварительно скопировать файлы сценария, включив опцию принудительного копирования?
Комментарии:
1. Вы когда-нибудь понимали это? У меня возникла именно эта проблема
2. @NerdinTraining Мне жаль говорить, что я не смог завершить это. В конечном счете, в компании не было никого, кто мог бы поддержать меня в приобретении знаний, и мне пришлось отказаться от некоторых запланированных функций. В этом случае это было упрощено до процесса веб-развертывания InvokeProcess, что значительно упростило развертывание, но также сократило возможность простого запуска сценариев проверки. (извините за поздний ответ)
Ответ №1:
Для запуска сценария PowerShell, я думаю, вы можете использовать действие InvokeProcess, которое вызовет что-то вроде этого: %windir%system32windowspowershellv1.0powershell.exe «$(SolutionRoot)test.ps1
И да, вы можете получить доступ к файлу сценария, присутствующему в системе управления версиями, используя ключевое слово «SourcesDirectory».
Комментарии:
1. Я бы также добавил -NoProfile и -NonInteractive к аргументам Powershell, например
"-NonInteractive -NoProfile -Command ""amp; {" SourcesDirectory "BuildMakeSdkZip.ps1 " SourcesDirectory " " ZipPath " }"""