mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-13 17:23:02 -05:00
Fixing integration tests for sts (#1453)
* Fixing test pipeline * pwd * fixing script * fixing cwd * switch to bash * Cleaning up script and yml * Fixing script comment * Fixing the comments * Adding issue in the comment * Adding automatic password generator * Removing unncesary use statement * Fixing key * Printing var * Printing settings * Printing var * Fixed var * Fixed * Reverting some changes * Changing fetch variable to upper case * Fixing password logic * Debug * debug2 * debug * Making passwords secret * Fixing string null check * removed dirs * fixing var name * Fixing var * Printing vars to see if the enviornment is setup correctly * Printing versionkey * removing prints * Adding 2019 Instance key and updating template * fixing env variable * Fixing comment
This commit is contained in:
98
azure-pipelines/createBuildDirectories.sh
Executable file
98
azure-pipelines/createBuildDirectories.sh
Executable file
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This script creates the necessary directories that are required
|
||||
# for the the linux dotnet builds to work. This issue is caused due to a mismatch
|
||||
# in the casing for the localization directories between all the projects and the
|
||||
# nuget packages they are using. This not an issue in the windows because the dirs
|
||||
# are case insensitive.
|
||||
|
||||
|
||||
# To fix the issue, we need to make sure all the projects
|
||||
# and their referenced nuget packages follow the same letter casing for the
|
||||
# locailzation directories.
|
||||
|
||||
# The script need to run from the repo root
|
||||
|
||||
net6projectArray=(
|
||||
"./src/Microsoft.InsightsGenerator"
|
||||
"./src/Microsoft.Kusto.ServiceLayer"
|
||||
"./src/Microsoft.SqlTools.Credentials"
|
||||
"./src/Microsoft.SqlTools.Hosting"
|
||||
"./src/Microsoft.SqlTools.ResourceProvider"
|
||||
"./src/Microsoft.SqlTools.ResourceProvider.Core"
|
||||
"./src/Microsoft.SqlTools.ResourceProvider.DefaultImpl"
|
||||
"./src/Microsoft.SqlTools.ServiceLayer"
|
||||
"./test/Microsoft.InsightsGenerator.UnitTests"
|
||||
"./test/Microsoft.Kusto.ServiceLayer.UnitTests"
|
||||
"./test/Microsoft.SqlTools.ManagedBatchParser.IntegrationTests"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.IntegrationTests"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.PerfTests"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.Test.Common"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.TestDriver"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.TestDriver.Tests"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.TestEnvConfig"
|
||||
"./test/Microsoft.SqlTools.ServiceLayer.UnitTests"
|
||||
"./test/Microsoft.SqlTools.Test.CompletionExtension"
|
||||
)
|
||||
|
||||
netStandard2ProjectArray=(
|
||||
"./src/Microsoft.SqlTools.ManagedBatchParser"
|
||||
)
|
||||
|
||||
# Please update the framework vars when updating target framework for the projects
|
||||
framework6="/bin/Debug/net6.0/"
|
||||
framework2="/bin/Debug/netstandard2.1/"
|
||||
|
||||
requiredLocDirectories=(
|
||||
"cs"
|
||||
"cs-CZ"
|
||||
"de"
|
||||
"de-DE"
|
||||
"es"
|
||||
"es-ES"
|
||||
"fr"
|
||||
"fr-FR"
|
||||
"hu-HU"
|
||||
"it"
|
||||
"it-IT"
|
||||
"ja"
|
||||
"ja-JP"
|
||||
"ko"
|
||||
"ko-KR"
|
||||
"nl-NL"
|
||||
"pl"
|
||||
"pl-PL"
|
||||
"pt-br"
|
||||
"pt-PT"
|
||||
"ru"
|
||||
"ru-RU"
|
||||
"sv-SE"
|
||||
"tr"
|
||||
"tr-TR"
|
||||
"zh-HANS"
|
||||
"zh-hans"
|
||||
"zh-HANT"
|
||||
"zh-hant"
|
||||
)
|
||||
|
||||
for i in "${net6projectArray[@]}"
|
||||
do
|
||||
:
|
||||
for k in "${requiredLocDirectories[@]}"
|
||||
do
|
||||
:
|
||||
output=`mkdir -v -p $i$framework6$k`
|
||||
echo $output
|
||||
done
|
||||
done
|
||||
|
||||
for i in "${netStandard2ProjectArray[@]}"
|
||||
do
|
||||
:
|
||||
for k in "${requiredLocDirectories[@]}"
|
||||
do
|
||||
:
|
||||
output=`mkdir -v -p $i$framework2$k`
|
||||
echo $output
|
||||
done
|
||||
done
|
||||
@@ -1,56 +1,72 @@
|
||||
pool:
|
||||
name: SqlToolsTestAgentPool
|
||||
demands: VisualStudio_16.0
|
||||
name: ads-build-1es-hosted-pool
|
||||
demands:
|
||||
- ImageOverride -equals ADS-Linux_Image
|
||||
|
||||
steps:
|
||||
- task: DownloadSecureFile@1
|
||||
displayName: 'Download secure file'
|
||||
|
||||
- task: DockerInstaller@0
|
||||
displayName: Installing Docker
|
||||
inputs:
|
||||
secureFile: 'testsettings.json'
|
||||
dockerVersion: 17.09.0-ce
|
||||
releaseType: stable
|
||||
|
||||
- task: VisualStudioTestPlatformInstaller@1
|
||||
displayName: 'Visual Studio Test Platform Installer'
|
||||
inputs:
|
||||
versionSelector: latestStable
|
||||
- script: docker pull mcr.microsoft.com/mssql/server:2019-latest
|
||||
displayName: Pull MSSQL Docker Image
|
||||
|
||||
- bash: echo "##vso[task.setvariable variable=defaultSql2019_password;issecret=true]Test-$(Build.BuildNumber)-$(Get-Date -format yyyyMMdd-Hmmss)"
|
||||
displayName: Generate password for test server
|
||||
|
||||
- script: 'docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=$(defaultSql2019_password)"
|
||||
-e "MSSQL_AGENT_ENABLED=True"
|
||||
-p 1433:1433 --name sql1 -h sql1
|
||||
-d mcr.microsoft.com/mssql/server:2019-latest'
|
||||
displayName: Starting Server in Docker Container
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Use .NET Core sdk '
|
||||
displayName: Use .NET Core SDK
|
||||
inputs:
|
||||
useGlobalJson: true
|
||||
|
||||
- task: Bash@3
|
||||
displayName: Creating Loc Directories Expected By Dotnet Build
|
||||
inputs:
|
||||
filePath: ./azure-pipelines/createBuildDirectories.sh
|
||||
|
||||
- task: NuGetAuthenticate@0
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'dotnet build'
|
||||
displayName: Building Test Environment
|
||||
inputs:
|
||||
projects: '**/Microsoft.SqlTools.ServiceLayer.TestEnvConfig.csproj'
|
||||
|
||||
- task: DownloadSecureFile@1
|
||||
displayName: Download Test Environment Configuration
|
||||
name: testEnvironmentPath
|
||||
inputs:
|
||||
secureFile: 'SQLConnectionInstances.xml'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Setting Up Test Environment
|
||||
inputs:
|
||||
command: run
|
||||
projects: '**/Microsoft.SqlTools.ServiceLayer.TestEnvConfig.csproj'
|
||||
arguments: $(testEnvironmentPath.secureFilePath)
|
||||
testRunTitle: 'Setting tests'
|
||||
env:
|
||||
defaultSql2019_password: '$(defaultSql2019_password)'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: Building Integration Tests
|
||||
inputs:
|
||||
projects: '**/Microsoft.SqlTools.ServiceLayer.IntegrationTests.csproj'
|
||||
arguments: '/p:CodeCoverageBuild=true'
|
||||
|
||||
- task: CopyFiles@2
|
||||
displayName: 'Copy testsettings file to bin'
|
||||
inputs:
|
||||
SourceFolder: '$(Agent.TempDirectory)'
|
||||
Contents: '**\testsettings.json'
|
||||
TargetFolder: '$(Build.SourcesDirectory)\test\Microsoft.SqlTools.ServiceLayer.IntegrationTests\bin\Debug\net6.0'
|
||||
|
||||
- task: DotNetCoreCLI@2
|
||||
displayName: 'Run integration tests'
|
||||
displayName: Running Integration Tests
|
||||
inputs:
|
||||
command: test
|
||||
projects: '**/Microsoft.SqlTools.ServiceLayer.IntegrationTests.csproj'
|
||||
arguments: '--no-build'
|
||||
testRunTitle: 'SqlToolsService Integration Tests'
|
||||
enabled: false
|
||||
|
||||
- task: VSTest@2
|
||||
displayName: 'Run integration tests with code coverage'
|
||||
inputs:
|
||||
testAssemblyVer2: '**/bin/Debug/**/Microsoft.SqlTools.ServiceLayer.IntegrationTests.dll'
|
||||
vsTestVersion: toolsInstaller
|
||||
runSettingsFile: 'azure-pipelines/testrun.runsettings'
|
||||
codeCoverageEnabled: true
|
||||
testRunTitle: 'SqlToolsService Integration Tests'
|
||||
rerunFailedTests: true
|
||||
rerunFailedThreshold: 15
|
||||
rerunMaxAttempts: 1
|
||||
continueOnError: true
|
||||
|
||||
Reference in New Issue
Block a user