Skip to content

Commit 6a259d2

Browse files
Merge pull request #13 from max-ieremenko/release/3.0
Release/3.0
2 parents 0d845bb + 6233a1e commit 6a259d2

File tree

387 files changed

+6161
-2391
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

387 files changed

+6161
-2391
lines changed

Build/build-scripts.ps1

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,74 @@ function Wait-Mssql($connectionString) {
8181
Start-Sleep -Seconds 1
8282
}
8383
}
84+
85+
$connection.Open()
8486
}
8587
finally {
8688
$connection.Dispose()
8789
}
8890
}
8991

92+
function Start-Pgsql {
93+
$npgsqldll = Join-Path $env:USERPROFILE ".nuget\packages\npgsql\4.0.11\lib\netstandard2.0\Npgsql.dll"
94+
Add-Type -Path $npgsqldll
95+
96+
$containerId = exec {
97+
docker run `
98+
-d `
99+
-p 5432 `
100+
sqldatabase/postgres:13.3
101+
}
102+
103+
$ip = exec {
104+
docker inspect `
105+
--format "{{.NetworkSettings.Networks.bridge.IPAddress}}" `
106+
$containerId
107+
}
108+
109+
$port = exec {
110+
docker inspect `
111+
--format "{{(index (index .NetworkSettings.Ports \""5432/tcp\"") 0).HostPort}}" `
112+
$containerId
113+
}
114+
115+
$builder = New-Object -TypeName Npgsql.NpgsqlConnectionStringBuilder
116+
$builder["Database"] = "sqldatabasetest"
117+
$builder["Username"] = "postgres"
118+
$builder["Password"] = "qwerty"
119+
$builder["Timeout"] = 5
120+
121+
$builder.Host = "localhost"
122+
$builder.Port = $port.ToString()
123+
$connectionString = $builder.ToString()
124+
125+
$builder.Host = $ip.ToString()
126+
$builder.Port = 5432
127+
$remoteConnectionString = $builder.ToString()
128+
129+
return @{
130+
containerId = $containerId
131+
connectionString = $connectionString
132+
remoteConnectionString = $remoteConnectionString
133+
}
134+
}
135+
136+
function Wait-Pgsql($connectionString) {
137+
$connection = New-Object -TypeName Npgsql.NpgsqlConnection -ArgumentList $connectionString
138+
try {
139+
for ($i = 0; $i -lt 20; $i++) {
140+
try {
141+
$connection.Open()
142+
return
143+
}
144+
catch {
145+
Start-Sleep -Seconds 1
146+
}
147+
}
148+
149+
$connection.Open()
150+
}
151+
finally {
152+
$connection.Dispose()
153+
}
154+
}

Build/build-tasks.it-linux.ps1

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,21 @@
11
param(
2-
$settings,
3-
$targetFramework,
4-
$image
2+
$settings
3+
, $targetFramework
4+
, $database
5+
, $image
56
)
67

7-
task Test RunMssql, UnZip, RunTest
8+
task Test StartDatabase, UnZip, RunTest
89

910
. .\build-scripts.ps1
1011

11-
$mssqlContainerId = ""
12+
$containerId = ""
1213
$connectionString = ""
1314
$remoteConnectionString = ""
1415
$tempDir = Join-Path $settings.bin ([Guid]::NewGuid().ToString())
1516

1617
Enter-Build {
17-
Write-Output "$image"
18+
Write-Output "$database on $targetFramework on $image"
1819
}
1920

2021
task UnZip {
@@ -24,21 +25,21 @@ task UnZip {
2425
Expand-Archive -Path $package -DestinationPath $tempDir
2526
}
2627

27-
task RunMssql {
28-
$info = Start-Mssql
28+
task StartDatabase {
29+
$info = & "Start-$database"
2930

30-
$script:mssqlContainerId = $info.containerId
31+
$script:containerId = $info.containerId
3132
$script:remoteConnectionString = $info.remoteConnectionString
3233
$script:connectionString = $info.connectionString
3334

3435
Write-Output $connectionString
3536
}
3637

3738
task RunTest {
38-
Wait-Mssql $info.connectionString
39+
& "Wait-$database" $connectionString
3940

4041
$app = $tempDir + ":/app"
41-
$test = $settings.integrationTests + ":/test"
42+
$test = (Join-Path $settings.integrationTests $database) + ":/test"
4243

4344
exec {
4445
docker run --rm `
@@ -57,7 +58,7 @@ Exit-Build {
5758
Remove-Item -Path $tempDir -Force -Recurse
5859
}
5960

60-
if ($mssqlContainerId) {
61-
exec { docker container rm -f $mssqlContainerId } | Out-Null
61+
if ($containerId) {
62+
exec { docker container rm -f $containerId } | Out-Null
6263
}
6364
}

Build/build-tasks.it-ps-core.ps1

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
param(
2-
$settings,
3-
$image
2+
$settings
3+
, $database
4+
, $image
45
)
56

6-
task Test RunMssql, RunTest
7+
task Test StartDatabase, RunTest
78

89
. .\build-scripts.ps1
910

10-
$mssqlContainerId = ""
11+
$containerId = ""
1112
$connectionString = ""
1213

1314
Enter-Build {
14-
Write-Output "$image"
15+
Write-Output "$database on $image"
1516
}
1617

17-
task RunMssql {
18-
$info = Start-Mssql
18+
task StartDatabase {
19+
$info = & "Start-$database"
1920

20-
$script:mssqlContainerId = $info.containerId
21+
$script:containerId = $info.containerId
2122
$script:connectionString = $info.remoteConnectionString
2223

2324
Write-Output $connectionString
24-
Wait-Mssql $info.connectionString
25+
& "Wait-$database" $info.connectionString
2526
}
2627

2728
task RunTest {
2829
$app = $settings.artifactsPowerShell + ":/root/.local/share/powershell/Modules/SqlDatabase"
29-
$test = $settings.integrationTests + ":/test"
30+
$test = (Join-Path $settings.integrationTests $database) + ":/test"
3031

3132
exec {
3233
docker run --rm `
@@ -39,7 +40,7 @@ task RunTest {
3940
}
4041

4142
Exit-Build {
42-
if ($mssqlContainerId) {
43-
exec { docker container rm -f $mssqlContainerId } | Out-Null
43+
if ($containerId) {
44+
exec { docker container rm -f $containerId } | Out-Null
4445
}
4546
}

Build/build-tasks.it-ps-desktop.ps1

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ param(
22
$settings
33
)
44

5-
task Test RunMssql, CopyModule, PublishModule, RunTest
5+
task Test RunContainers, CopyModule, PublishModule, RunTest
66

77
. .\build-scripts.ps1
88

99
$mssqlContainerId = ""
10-
$connectionString = ""
10+
$mssqlConnectionString = ""
11+
$pgsqlContainerId = ""
12+
$pgsqlConnectionString = ""
1113
$testDir = Join-Path ([Environment]::GetFolderPath("MyDocuments")) "WindowsPowerShell\modules\SqlDatabase"
1214

1315
task CopyModule {
@@ -25,23 +27,30 @@ task PublishModule {
2527
exec { powershell -NoLogo -Command "$command" }
2628
}
2729

28-
task RunMssql {
30+
task RunContainers {
2931
$info = Start-Mssql
30-
3132
$script:mssqlContainerId = $info.containerId
32-
$script:connectionString = $info.connectionString
33+
$script:mssqlConnectionString = $info.connectionString
34+
Write-Output $mssqlConnectionString
3335

34-
Write-Output $connectionString
36+
$info = Start-Pgsql
37+
$script:pgsqlContainerId = $info.containerId
38+
$script:pgsqlConnectionString = $info.connectionString
39+
Write-Output $pgsqlConnectionString
3540
}
3641

3742
task RunTest {
38-
Wait-Mssql $connectionString
39-
40-
$env:connectionString = $connectionString
43+
Wait-Mssql $mssqlConnectionString
44+
Wait-Pgsql $pgsqlConnectionString
4145

42-
$testScript = Join-Path $settings.integrationTests "TestPowerShell.ps1"
46+
$env:connectionString = $mssqlConnectionString
47+
$testScript = Join-Path $settings.integrationTests "MsSql\TestPowerShell.ps1"
4348
$command = ". $testScript"
49+
exec { powershell -NoLogo -Command "$command" }
4450

51+
$env:connectionString = $pgsqlConnectionString
52+
$testScript = Join-Path $settings.integrationTests "PgSql\TestPowerShell.ps1"
53+
$command = ". $testScript"
4554
exec { powershell -NoLogo -Command "$command" }
4655
}
4756

@@ -50,7 +59,5 @@ Exit-Build {
5059
Remove-Item -Path $testDir -Force -Recurse
5160
}
5261

53-
if ($mssqlContainerId) {
54-
exec { docker container rm -f $mssqlContainerId } | Out-Null
55-
}
62+
exec { docker container rm -f $mssqlContainerId $pgsqlContainerId } | Out-Null
5663
}

Build/build-tasks.it-tool-linux.ps1

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
11
param(
2-
$settings,
3-
$image
2+
$settings
3+
, $database
4+
, $image
45
)
56

6-
task Test RunMssql, RunTest
7+
task Test StartDatabase, RunTest
78

89
. .\build-scripts.ps1
910

10-
$mssqlContainerId = ""
11+
$containerId = ""
1112
$connectionString = ""
1213

1314
Enter-Build {
14-
Write-Output "$image"
15+
Write-Output "$database on $image"
1516
}
1617

17-
task RunMssql {
18-
$info = Start-Mssql
18+
task StartDatabase {
19+
$info = & "Start-$database"
1920

20-
$script:mssqlContainerId = $info.containerId
21+
$script:containerId = $info.containerId
2122
$script:connectionString = $info.remoteConnectionString
2223

2324
Write-Output $connectionString
24-
Wait-Mssql $info.connectionString
25+
& "Wait-$database" $info.connectionString
2526
}
2627

2728
task RunTest {
2829
$packageVersion = $settings.version
2930
$packageName = "SqlDatabase.GlobalTool.$packageVersion.nupkg"
3031
$app = (Join-Path $settings.artifacts $packageName) + ":/app/$packageName"
31-
$test = $settings.integrationTests + ":/test"
32+
$test = (Join-Path $settings.integrationTests $database) + ":/test"
3233

3334
exec {
3435
docker run --rm `
@@ -44,7 +45,7 @@ task RunTest {
4445
}
4546

4647
Exit-Build {
47-
if ($mssqlContainerId) {
48-
exec { docker container rm -f $mssqlContainerId } | Out-Null
48+
if ($containerId) {
49+
exec { docker container rm -f $containerId } | Out-Null
4950
}
5051
}

Build/build-tasks.it-win.ps1

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
param(
2-
$settings,
3-
$targetFramework
2+
$settings
3+
, $targetFramework
4+
, $database
45
)
56

6-
task Test RunMssql, UnZip, RunTest
7+
task Test StartDatabase, UnZip, RunTest
78

89
. .\build-scripts.ps1
910

10-
$mssqlContainerId = ""
11+
$containerId = ""
1112
$connectionString = ""
1213
$tempDir = Join-Path $settings.bin ([Guid]::NewGuid().ToString())
1314

@@ -22,20 +23,21 @@ task UnZip {
2223
Expand-Archive -Path $package -DestinationPath $tempDir
2324
}
2425

25-
task RunMssql {
26-
$info = Start-Mssql
26+
task StartDatabase {
27+
$info = & "Start-$database"
2728

28-
$script:mssqlContainerId = $info.containerId
29+
$script:containerId = $info.containerId
2930
$script:connectionString = $info.connectionString
3031

3132
Write-Output $connectionString
3233
}
3334

3435
task RunTest {
35-
Wait-Mssql $info.connectionString
36+
& "Wait-$database" $connectionString
3637

3738
$app = Join-Path $tempDir "SqlDatabase.exe"
38-
$script = Join-Path $settings.integrationTests "Test.ps1"
39+
$script = (Join-Path $settings.integrationTests $database)
40+
$script = Join-Path $script "Test.ps1"
3941

4042
& $script $app $connectionString
4143
}
@@ -45,7 +47,7 @@ Exit-Build {
4547
Remove-Item -Path $tempDir -Force -Recurse
4648
}
4749

48-
if ($mssqlContainerId) {
49-
exec { docker container rm -f $mssqlContainerId } | Out-Null
50+
if ($containerId) {
51+
exec { docker container rm -f $containerId } | Out-Null
5052
}
5153
}

0 commit comments

Comments
 (0)