-
Notifications
You must be signed in to change notification settings - Fork 111
Expand file tree
/
Copy pathtSQLt_BuildPackage.ps1
More file actions
96 lines (81 loc) · 4.34 KB
/
tSQLt_BuildPackage.ps1
File metadata and controls
96 lines (81 loc) · 4.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
using module "./CommonFunctionsAndMethods.psm1";
$__=$__ #quiesce warnings
$invocationDir = $PSScriptRoot
Push-Location -Path $invocationDir
try{
$tSQLtBuildPath = (Join-Path $invocationDir '/output/tSQLtBuild/'|Resolve-Path);
$tSQLtTestsPath = (Join-Path $invocationDir '/output/tSQLtTests/'|Resolve-Path);
$DacpacBuildPath = (Join-Path $invocationDir '/output/DacpacBuild/'|Resolve-Path);
# Write-Warning "BuildPackage Inputs:"
# Write-Warning "----------------------------------------------------------------"
# Get-ChildItem $tSQLtBuildPath -Recurse |FT;
# Write-Warning "----------------------------------------------------------------"
# Get-ChildItem $tSQLtTestsPath -Recurse |FT;
# Write-Warning "----------------------------------------------------------------"
# Get-ChildItem $DacpacBuildPath -Recurse |FT;
# Write-Warning "----------------------------------------------------------------"
$OutputPath = (Join-Path $invocationDir "/output/tSQLt/");
$TempPath = (Join-Path $invocationDir "/temp/tSQLt/");
$PublicOutputPath = (Join-Path $OutputPath "public/");
$PublicTempPath = (Join-Path $TempPath "public/");
$ValidationOutputPath = (Join-Path $OutputPath "validation/");
$tSQLtDacpacPath = (Join-Path $PublicTempPath "tSQLtDacpacs/");
$SourcePath = (Join-Path $TempPath "Source/");
$DacpacSourcePath = (Join-Path $SourcePath "Dacpacs/");
$PublicOutputFiles = @(
($PublicTempPath + "/ReadMe.txt"),
($SourcePath + "/tSQLtSnippets(SQLPrompt).zip")
);
$ValidationOutputFiles = @(
($SourcePath + "/Version.txt"),
($SourcePath + "/CommitId.txt"),
($SourcePath + "/tSQLt.tests.zip"),
($SourcePath + "/CreateBuildLog.sql"),
($SourcePath + "/GetFriendlySQLServerVersion.sql")
);
<# Clean #>
Remove-DirectoryQuietly -Path $TempPath;
Remove-DirectoryQuietly -Path $OutputPath;
<# Init directories, capturing the return values in a variable so that they don't print. #>
$__ = New-Item -ItemType "directory" -Path $PublicOutputPath;
$__ = New-Item -ItemType "directory" -Path $tSQLtDacpacPath;
$__ = New-Item -ItemType "directory" -Path $ValidationOutputPath;
$__ = New-Item -ItemType "directory" -Path $SourcePath;
$__ = New-Item -ItemType "directory" -Path $DacpacSourcePath;
Log-Output("Copying source files...")
$files = @(
"$($tSQLtBuildPath)Version.txt",
"$($tSQLtBuildPath)CommitId.txt",
"$($tSQLtBuildPath)CreateBuildLog.sql",
"$($tSQLtBuildPath)GetFriendlySQLServerVersion.sql",
"$($tSQLtTestsPath)tSQLt.tests.zip",
"$($tSQLtBuildPath)tSQLtSnippets(SQLPrompt).zip",
"$($tSQLtBuildPath)tSQLtFiles.zip"
);
$files | ForEach-Object{$_ | Copy-Item -Destination $SourcePath}
Get-ChildItem $DacpacBuildPath | Copy-Item -Destination $DacpacSourcePath
<# Copy files to temp path #>
Expand-Archive -Path (Join-Path $SourcePath "tSQLtFiles.zip" | Resolve-Path) -DestinationPath $PublicTempPath;
# Get-ChildItem -Path ($dir + "/output/DacpacBuild/tSQLtFacade.*.dacpac") | Copy-Item -Destination $FacadeDacpacPath;
Get-ChildItem -Path $DacpacSourcePath -Filter 'tSQLt.*.dacpac' | Copy-Item -Destination $tSQLtDacpacPath;
Copy-Item (Join-Path $PublicTempPath "ReleaseNotes.txt" | Resolve-Path) -Destination (Join-Path $PublicTempPath "ReadMe.txt");
# Write-Warning "BuildPackage Pre-Zip:"
# Write-Warning "----------------------------------------------------------------"
# Get-ChildItem $PublicTempPath -Recurse |FT;
# Write-Warning "----------------------------------------------------------------"
# Get-ChildItem $ValidationOutputFiles -Recurse |FT;
# Write-Warning "----------------------------------------------------------------"
<# Create the tSQLt.zip in the public output path #>
$compress = @{
CompressionLevel = "Optimal"
DestinationPath = $PublicOutputPath + "/tSQLt.zip"
}
Get-ChildItem -Path $PublicTempPath | Compress-Archive @compress
<# Copy all public files into public output path #>
Copy-Item -Path $PublicOutputFiles -Destination $PublicOutputPath
<# Copy all validation files into validation output path #>
Copy-Item -Path $ValidationOutputFiles -Destination $ValidationOutputPath
}
finally{
Pop-Location
}