1
- # pack&push .ps1
1
+ # deploy .ps1
2
2
param (
3
3
[string ]$Configuration = " Release" ,
4
4
[string ]$PackageOutput = " $ ( pwd) /artifacts" ,
@@ -11,33 +11,34 @@ if (-not (Test-Path -Path $PackageOutput)) {
11
11
New-Item - ItemType Directory - Path $PackageOutput | Out-Null
12
12
}
13
13
14
- # Iterate over each project in the src directory
15
- Get-ChildItem - Path src - Filter FeatureManagement.* - Directory | ForEach-Object {
14
+ # Iterate over each project to pack
15
+ Get-ChildItem - Path src - Filter FeatureManagement.Database * - Directory | ForEach-Object {
16
16
$projectPath = $_.FullName
17
17
$projectName = $_.Name
18
- $csprojPath = Join-Path - Path $projectPath - ChildPath " $projectName .csproj"
18
+ $csprojPath = Join-Path - Path $projectPath - ChildPath " ${ projectName} .csproj"
19
19
20
20
try {
21
- $version = dotnet msbuild $csprojPath - nologo - t:GetVersion - v:q - p:OutputProperty = Version
21
+ $version = dotnet msbuild $csprojPath - nologo - t:GetVersion - p:Configuration = $configuration | ForEach-Object { $_ .Trim () }
22
22
23
23
if (-not $version ) {
24
- throw " Failed to retrieve version for project $projectName "
24
+ throw " Failed to retrieve version for project ${ projectName} "
25
25
}
26
26
27
- $packageName = " $ projectName. $ version.nupkg "
27
+ Write-Host " > Packing ${ projectName} version: ${ version} " - ForegroundColor " Cyan "
28
28
29
29
dotnet pack $projectPath -- configuration $Configuration -- output $PackageOutput
30
30
31
- $packageExists = dotnet nuget search $projectName -- version $version -- source $NuGetSourceUrl | Select-String - Pattern $version
31
+ $packageName = " ${projectName} .${version} .nupkg"
32
+ $packagePath = Join-Path - Path $PackageOutput - ChildPath $packageName
32
33
33
- if (-not $packageExists ) {
34
- dotnet nuget push " $PackageOutput / $packageName " - k $NuGetApiKey - s $NuGetSourceUrl
35
- Write-Host " Package $packageName version $version pushed." - ForegroundColor " Green"
34
+ if (Test-Path - Path $packagePath ) {
35
+ dotnet nuget push $packagePath - k $NuGetApiKey - s $NuGetSourceUrl -- skip-duplicate
36
+ Write-Host " Package ${ packageName} pushed." - ForegroundColor " Green"
36
37
} else {
37
- Write-Host " Package $packageName version $version already exists on NuGet. Skipping push." - ForegroundColor " Yellow"
38
+ Write-Host " Package ${ packageName} already exists on NuGet. Skipping push." - ForegroundColor " Yellow"
38
39
}
39
40
} catch {
40
- Write-Error " Error processing project $projectName : $_ "
41
+ Write-Error " Error processing project ${ projectName} : $_ "
41
42
}
42
43
}
43
44
0 commit comments