В настоящее время я перемещаю наш конвейер CI / CD из среды Bitbucket / Jenkins в размещенный GitLab с дополнительными настраиваемыми бегунами gitlab-ci. Пока что все выглядит нормально, кроме случаев, когда дело касается сервисов, особенно в отношении сервера MS SQL.
Я настроил файл gitlab-ci.yml, который содержит сервис и задание на этапе сборки, которое в основном просто выполняет некоторые цели msbuild. Я вызываю цель AttachDatabase, которая затем внутренне подключается к базе данных и готовит все для тестирования юнитов. К сожалению, я не могу подключиться к базе данных, независимо от того, использую я псевдоним службы или нет.
Согласно документации, я должен иметь возможность использовать псевдоним, определенный в службах, в строке подключения, найденной в Library.Build.Database.targets для подключения к базе данных.
Я установил небольшой справочный проект, который иллюстрирует проблему: ms sql -test .
Если конвейер запущен, в журнале появляется следующее сообщение об ошибке:
error : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections
image: "mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019"
variables:
PROJ_NAME: MSSQL.Test.proj
MSBUILD_BIN: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin\msbuild.exe'
NUGET_BIN: 'C:\Program Files\NuGet\nuget.exe'
ACCEPT_EULA: 'Y'
sa_password: Unit-T3st3r
services:
- name: advitec/mssql-server-windows-developer
alias: mssql
attachdatabase:
stage: build
tags:
- windows-1809
- 3volutions
- docker-windows
cache:
paths:
- packages
before_script:
- cmd /C "$NUGET_BIN" restore .\packages.config -OutputDirectory .\packages
allow_failure: false
script:
- cmd /C "$MSBUILD_BIN" "$PROJ_NAME" -t:AttachDatabase -v:Minimal "-p:Configuration=ReleaseForTesting;UniqueBuildNumber=$CI_PIPELINE_IID"
Я использую пользовательский windows Gitlab бегун (только по соображениям производительности), ниже соответствующего config.toml
Runner:
concurrent = 1
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "gitlab-runner-02-windows-server-datacenter-1809"
url = "https://gitlab.com/"
token = "****"
executor = "docker-windows"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
[runners.docker]
tls_verify = false
image = "mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["c:\\cache"]
shm_size = 0
Есть идеи, что мне не хватает?
Приветствия