diff --git a/.gitignore b/.gitignore index b354858e8a..28e998ce5f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,6 @@ install.ps1 # ignore the version file as it is generated at build time powershell.version + +# default location for produced nuget packages +/nuget-artifacts diff --git a/appveyor.yml b/appveyor.yml index 6413799cfe..3b35f8ec64 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -23,7 +23,6 @@ install: build_script: - ps: | $ErrorActionPreference = 'Stop' - Import-Module .\build.psm1 Start-PSBuild -Publish Start-PSBuild -FullCLR @@ -73,12 +72,17 @@ on_finish: [System.IO.Compression.ZipFile]::CreateFromDirectory($env:CoreOutput, $zipFilePath) [System.IO.Compression.ZipFile]::CreateFromDirectory($env:FullOutput, $zipFileFullPath) - @( - # You can add other artifacts here + $artifacts = @( $zipFilePath, $zipFileFullPath - ) | % { - Write-Host "Pushing package $_ as Appveyor artifact" + ) + + Publish-NuGetFeed -OutputPath .\nuget-artifacts -VersionSuffix $env:APPVEYOR_BUILD_NUMBER + + $artifacts += (ls .\nuget-artifacts | % {$_.FullName}) + + $artifacts | % { + Write-Host "Pushing $_ as Appveyor artifact" Push-AppveyorArtifact $_ } } catch { diff --git a/build.psm1 b/build.psm1 index a51fbea777..2061eb7c65 100644 --- a/build.psm1 +++ b/build.psm1 @@ -529,6 +529,34 @@ Built upon .NET Core, it is also a C# REPL. } } +function Publish-NuGetFeed +{ + param( + [string]$OutputPath = "$PSScriptRoot/nuget-artifacts", + [Parameter(Mandatory=$true)] + [string]$VersionSuffix + ) + + @( +'Microsoft.Management.Infrastructure', +'Microsoft.PowerShell.Commands.Management', +'Microsoft.PowerShell.Commands.Utility', +'Microsoft.PowerShell.ConsoleHost', +'Microsoft.PowerShell.PSReadLine', +'Microsoft.PowerShell.Security', +'System.Management.Automation' + ) | % { + if ($VersionSuffix) + { + dotnet pack "src/$_" --output $OutputPath --version-suffix $VersionSuffix + } + else + { + dotnet pack "src/$_" --output $OutputPath + } + } +} + function Start-DevPSGitHub { param(