Skip to content

Commit

Permalink
Merge pull request #13 from max-ieremenko/release/3.0
Browse files Browse the repository at this point in the history
Release/3.0
  • Loading branch information
max-ieremenko committed May 27, 2021
2 parents 0d845bb + 6233a1e commit 6a259d2
Show file tree
Hide file tree
Showing 387 changed files with 6,161 additions and 2,391 deletions.
65 changes: 65 additions & 0 deletions Build/build-scripts.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,74 @@ function Wait-Mssql($connectionString) {
Start-Sleep -Seconds 1
}
}

$connection.Open()
}
finally {
$connection.Dispose()
}
}

function Start-Pgsql {
$npgsqldll = Join-Path $env:USERPROFILE ".nuget\packages\npgsql\4.0.11\lib\netstandard2.0\Npgsql.dll"
Add-Type -Path $npgsqldll

$containerId = exec {
docker run `
-d `
-p 5432 `
sqldatabase/postgres:13.3
}

$ip = exec {
docker inspect `
--format "{{.NetworkSettings.Networks.bridge.IPAddress}}" `
$containerId
}

$port = exec {
docker inspect `
--format "{{(index (index .NetworkSettings.Ports \""5432/tcp\"") 0).HostPort}}" `
$containerId
}

$builder = New-Object -TypeName Npgsql.NpgsqlConnectionStringBuilder
$builder["Database"] = "sqldatabasetest"
$builder["Username"] = "postgres"
$builder["Password"] = "qwerty"
$builder["Timeout"] = 5

$builder.Host = "localhost"
$builder.Port = $port.ToString()
$connectionString = $builder.ToString()

$builder.Host = $ip.ToString()
$builder.Port = 5432
$remoteConnectionString = $builder.ToString()

return @{
containerId = $containerId
connectionString = $connectionString
remoteConnectionString = $remoteConnectionString
}
}

function Wait-Pgsql($connectionString) {
$connection = New-Object -TypeName Npgsql.NpgsqlConnection -ArgumentList $connectionString
try {
for ($i = 0; $i -lt 20; $i++) {
try {
$connection.Open()
return
}
catch {
Start-Sleep -Seconds 1
}
}

$connection.Open()
}
finally {
$connection.Dispose()
}
}
27 changes: 14 additions & 13 deletions Build/build-tasks.it-linux.ps1
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
param(
$settings,
$targetFramework,
$image
$settings
, $targetFramework
, $database
, $image
)

task Test RunMssql, UnZip, RunTest
task Test StartDatabase, UnZip, RunTest

. .\build-scripts.ps1

$mssqlContainerId = ""
$containerId = ""
$connectionString = ""
$remoteConnectionString = ""
$tempDir = Join-Path $settings.bin ([Guid]::NewGuid().ToString())

Enter-Build {
Write-Output "$image"
Write-Output "$database on $targetFramework on $image"
}

task UnZip {
Expand All @@ -24,21 +25,21 @@ task UnZip {
Expand-Archive -Path $package -DestinationPath $tempDir
}

task RunMssql {
$info = Start-Mssql
task StartDatabase {
$info = & "Start-$database"

$script:mssqlContainerId = $info.containerId
$script:containerId = $info.containerId
$script:remoteConnectionString = $info.remoteConnectionString
$script:connectionString = $info.connectionString

Write-Output $connectionString
}

task RunTest {
Wait-Mssql $info.connectionString
& "Wait-$database" $connectionString

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

exec {
docker run --rm `
Expand All @@ -57,7 +58,7 @@ Exit-Build {
Remove-Item -Path $tempDir -Force -Recurse
}

if ($mssqlContainerId) {
exec { docker container rm -f $mssqlContainerId } | Out-Null
if ($containerId) {
exec { docker container rm -f $containerId } | Out-Null
}
}
25 changes: 13 additions & 12 deletions Build/build-tasks.it-ps-core.ps1
Original file line number Diff line number Diff line change
@@ -1,32 +1,33 @@
param(
$settings,
$image
$settings
, $database
, $image
)

task Test RunMssql, RunTest
task Test StartDatabase, RunTest

. .\build-scripts.ps1

$mssqlContainerId = ""
$containerId = ""
$connectionString = ""

Enter-Build {
Write-Output "$image"
Write-Output "$database on $image"
}

task RunMssql {
$info = Start-Mssql
task StartDatabase {
$info = & "Start-$database"

$script:mssqlContainerId = $info.containerId
$script:containerId = $info.containerId
$script:connectionString = $info.remoteConnectionString

Write-Output $connectionString
Wait-Mssql $info.connectionString
& "Wait-$database" $info.connectionString
}

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

exec {
docker run --rm `
Expand All @@ -39,7 +40,7 @@ task RunTest {
}

Exit-Build {
if ($mssqlContainerId) {
exec { docker container rm -f $mssqlContainerId } | Out-Null
if ($containerId) {
exec { docker container rm -f $containerId } | Out-Null
}
}
33 changes: 20 additions & 13 deletions Build/build-tasks.it-ps-desktop.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@ param(
$settings
)

task Test RunMssql, CopyModule, PublishModule, RunTest
task Test RunContainers, CopyModule, PublishModule, RunTest

. .\build-scripts.ps1

$mssqlContainerId = ""
$connectionString = ""
$mssqlConnectionString = ""
$pgsqlContainerId = ""
$pgsqlConnectionString = ""
$testDir = Join-Path ([Environment]::GetFolderPath("MyDocuments")) "WindowsPowerShell\modules\SqlDatabase"

task CopyModule {
Expand All @@ -25,23 +27,30 @@ task PublishModule {
exec { powershell -NoLogo -Command "$command" }
}

task RunMssql {
task RunContainers {
$info = Start-Mssql

$script:mssqlContainerId = $info.containerId
$script:connectionString = $info.connectionString
$script:mssqlConnectionString = $info.connectionString
Write-Output $mssqlConnectionString

Write-Output $connectionString
$info = Start-Pgsql
$script:pgsqlContainerId = $info.containerId
$script:pgsqlConnectionString = $info.connectionString
Write-Output $pgsqlConnectionString
}

task RunTest {
Wait-Mssql $connectionString

$env:connectionString = $connectionString
Wait-Mssql $mssqlConnectionString
Wait-Pgsql $pgsqlConnectionString

$testScript = Join-Path $settings.integrationTests "TestPowerShell.ps1"
$env:connectionString = $mssqlConnectionString
$testScript = Join-Path $settings.integrationTests "MsSql\TestPowerShell.ps1"
$command = ". $testScript"
exec { powershell -NoLogo -Command "$command" }

$env:connectionString = $pgsqlConnectionString
$testScript = Join-Path $settings.integrationTests "PgSql\TestPowerShell.ps1"
$command = ". $testScript"
exec { powershell -NoLogo -Command "$command" }
}

Expand All @@ -50,7 +59,5 @@ Exit-Build {
Remove-Item -Path $testDir -Force -Recurse
}

if ($mssqlContainerId) {
exec { docker container rm -f $mssqlContainerId } | Out-Null
}
exec { docker container rm -f $mssqlContainerId $pgsqlContainerId } | Out-Null
}
25 changes: 13 additions & 12 deletions Build/build-tasks.it-tool-linux.ps1
Original file line number Diff line number Diff line change
@@ -1,34 +1,35 @@
param(
$settings,
$image
$settings
, $database
, $image
)

task Test RunMssql, RunTest
task Test StartDatabase, RunTest

. .\build-scripts.ps1

$mssqlContainerId = ""
$containerId = ""
$connectionString = ""

Enter-Build {
Write-Output "$image"
Write-Output "$database on $image"
}

task RunMssql {
$info = Start-Mssql
task StartDatabase {
$info = & "Start-$database"

$script:mssqlContainerId = $info.containerId
$script:containerId = $info.containerId
$script:connectionString = $info.remoteConnectionString

Write-Output $connectionString
Wait-Mssql $info.connectionString
& "Wait-$database" $info.connectionString
}

task RunTest {
$packageVersion = $settings.version
$packageName = "SqlDatabase.GlobalTool.$packageVersion.nupkg"
$app = (Join-Path $settings.artifacts $packageName) + ":/app/$packageName"
$test = $settings.integrationTests + ":/test"
$test = (Join-Path $settings.integrationTests $database) + ":/test"

exec {
docker run --rm `
Expand All @@ -44,7 +45,7 @@ task RunTest {
}

Exit-Build {
if ($mssqlContainerId) {
exec { docker container rm -f $mssqlContainerId } | Out-Null
if ($containerId) {
exec { docker container rm -f $containerId } | Out-Null
}
}
24 changes: 13 additions & 11 deletions Build/build-tasks.it-win.ps1
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
param(
$settings,
$targetFramework
$settings
, $targetFramework
, $database
)

task Test RunMssql, UnZip, RunTest
task Test StartDatabase, UnZip, RunTest

. .\build-scripts.ps1

$mssqlContainerId = ""
$containerId = ""
$connectionString = ""
$tempDir = Join-Path $settings.bin ([Guid]::NewGuid().ToString())

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

task RunMssql {
$info = Start-Mssql
task StartDatabase {
$info = & "Start-$database"

$script:mssqlContainerId = $info.containerId
$script:containerId = $info.containerId
$script:connectionString = $info.connectionString

Write-Output $connectionString
}

task RunTest {
Wait-Mssql $info.connectionString
& "Wait-$database" $connectionString

$app = Join-Path $tempDir "SqlDatabase.exe"
$script = Join-Path $settings.integrationTests "Test.ps1"
$script = (Join-Path $settings.integrationTests $database)
$script = Join-Path $script "Test.ps1"

& $script $app $connectionString
}
Expand All @@ -45,7 +47,7 @@ Exit-Build {
Remove-Item -Path $tempDir -Force -Recurse
}

if ($mssqlContainerId) {
exec { docker container rm -f $mssqlContainerId } | Out-Null
if ($containerId) {
exec { docker container rm -f $containerId } | Out-Null
}
}
Loading

0 comments on commit 6a259d2

Please sign in to comment.