Я пытаюсь установить экземпляр SQL Server 2014 Express на агент Visual Studio Online Build, однако, похоже, он застревает и время ожидания истекает через полчаса (я опробую его и использую бесплатную версию для в настоящее время).
В настоящее время я запускаю следующую PowerShell в начале сборки:
choco feature enable -n=allowGlobalConfirmation
choco install mssqlserver2014express --package-parameters='silentArgs:"/IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /INSTANCEID=SQLEXPRESS /INSTANCENAME=SQLEXPRESS /UPDATEENABLED=FALSE /FEATURES=SQLENGINE"' -y
Устанавливается нормально локально и в AppVeyor, но зависает в VSO Build. Вот лог консоли, пока не истечет время ожидания:
Progress: 99% - Saving 311.7 MB of 311.73 MB
Progress: 100% - Completed download of C:\Users\VssAdministrator\AppData\Local\Temp\chocolatey\chocolatey\MsSqlServer2014Express\SQLEXPR.exe (311.73 MB).
Download of SQLEXPR.exe (311.73 MB) completed.
Hashes match.
C:\Users\VssAdministrator\AppData\Local\Temp\chocolatey\chocolatey\MsSqlServer2014Express\SQLEXPR.exe
Extracting...
Installing...
Installing MsSqlServer2014Express...
Я был бы рад услышать ответы, которые напрямую не решают проблему установки. Например, я нашел совет в другом месте , согласно которому вам не следует запускать интеграционные тесты на агенте сборки. Однако я не согласен с этим советом - у меня есть 1000 тестов базы данных, которые выполняются всего за 5 минут - и я предпочел бы провалить сборку, если эти тесты не пройдут, а не прогрессировать в конвейере сборки. Кроме того, я не хочу издеваться над базой данных - я использую Dapper, а не Entity Framework и хочу проверить, правильно ли мой код взаимодействует со схемой базы данных.
Я также видел совет, предлагающий вам настроить свой компьютер с предварительно установленным экземпляром SQL. Я бы предпочел не делать этого, поскольку у нас нет ресурса для настройки и обслуживания (применения исправлений безопасности и т. Д.) Компьютера. Я пробовал использовать SQL-сервер Azure, который, хотя и прост в обслуживании, занимает слишком много времени для создания новой базы данных. Кажется, что создание каждой базы данных занимает около 2 минут, а каждый тестовый запуск создает 20 баз данных.
Обновление
Я попробовал образ докера microsoft / mssql-server-windows-express в AppVeyor и VSTS. AppVeyor завершает установку за ~ 6 минут, но VSTS занимает ~ 19 минут. Загрузка для обоих заняла ~ 4,5 минуты, поэтому я был бы рад использовать это в AppVeyor с кэшированием, но 19 минут - это слишком долго в VSTS. Кто-нибудь знает, как диагностировать узкое место в VSTS?
docker pull microsoft/mssql-server-windows-express
docker run -d -p 1433:1433 -e sa_password=sgddsgbhidjsghuisg -e ACCEPT_EULA=Y microsoft/mssql-server-windows-express