Skip to content

Commit 00a05a1

Browse files
author
Scott Bommarito
authored
Configure MicroBuild to sign NuGet.Server (#65)
1 parent 26869a9 commit 00a05a1

12 files changed

Lines changed: 123 additions & 12 deletions

File tree

build.ps1

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ param (
99
[string]$SemanticVersion = '1.0.0-zlocal',
1010
[string]$Branch,
1111
[string]$CommitSHA,
12-
[string]$BuildBranch = '802a2329581ab88326bf1fd442595bac6dbaa848'
12+
[string]$BuildBranch = '795fed66b8bae2d248237ee5ec82e688e7174a42'
1313
)
1414

15+
$msBuildVersion = 15;
16+
1517
# For TeamCity - If any issue occurs, this script fail the build. - By default, TeamCity returns an exit code of 0 for all powershell scripts, even if they fail
1618
trap {
1719
Write-Host "BUILD FAILED: $_" -ForegroundColor Red
@@ -73,14 +75,19 @@ Invoke-BuildStep 'Set version metadata in AssemblyInfo.cs' {
7375

7476
Invoke-BuildStep 'Building solution' {
7577
$SolutionPath = Join-Path $PSScriptRoot "NuGet.Server.sln"
76-
Build-Solution $Configuration $BuildNumber -MSBuildVersion "15" $SolutionPath -SkipRestore:$SkipRestore `
78+
Build-Solution $Configuration $BuildNumber -MSBuildVersion "$msBuildVersion" $SolutionPath -SkipRestore:$SkipRestore `
7779
} `
7880
-ev +BuildErrors
7981

8082
Invoke-BuildStep 'Creating artifacts' {
81-
New-Package (Join-Path $PSScriptRoot "src\NuGet.Server.Core\NuGet.Server.Core.csproj") -Configuration $Configuration -Symbols -BuildNumber $BuildNumber -Version $SemanticVersion -Branch $Branch
82-
New-Package (Join-Path $PSScriptRoot "src\NuGet.Server.V2\NuGet.Server.V2.csproj") -Configuration $Configuration -Symbols -BuildNumber $BuildNumber -Version $SemanticVersion -Branch $Branch
83-
New-Package (Join-Path $PSScriptRoot "src\NuGet.Server\NuGet.Server.nuspec") -Configuration $Configuration -Symbols -BuildNumber $BuildNumber -Version $SemanticVersion -Branch $Branch
83+
$projects = `
84+
"src\NuGet.Server.Core\NuGet.Server.Core.csproj", `
85+
"src\NuGet.Server.V2\NuGet.Server.V2.csproj", `
86+
"src\NuGet.Server\NuGet.Server.nuspec"
87+
88+
Foreach ($project in $projects) {
89+
New-Package (Join-Path $PSScriptRoot $project) -Configuration $Configuration -Symbols -BuildNumber $BuildNumber -MSBuildVersion "$msBuildVersion" -Version $SemanticVersion -Branch $Branch
90+
}
8491
} `
8592
-ev +BuildErrors
8693

samples/NuGet.Server.V2.Samples.OwinHost/NuGet.Server.V2.Samples.OwinHost.csproj

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" />
34
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
45
<PropertyGroup>
56
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -12,6 +13,8 @@
1213
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
1314
<FileAlignment>512</FileAlignment>
1415
<TargetFrameworkProfile />
16+
<NuGetPackageImportStamp>
17+
</NuGetPackageImportStamp>
1518
</PropertyGroup>
1619
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1720
<PlatformTarget>AnyCPU</PlatformTarget>
@@ -136,5 +139,20 @@
136139
</ProjectReference>
137140
</ItemGroup>
138141
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
139-
<Import Project="..\..\build\sign.targets" Condition="Exists('..\..\build\sign.targets')" />
142+
<PropertyGroup>
143+
<SignPath>..\..\build</SignPath>
144+
<SignPath Condition="'$(BUILD_SOURCESDIRECTORY)' != ''">$(BUILD_SOURCESDIRECTORY)\build</SignPath>
145+
<SignPath Condition="'$(NuGetBuildPath)' != ''">$(NuGetBuildPath)</SignPath>
146+
<SignType Condition="'$(SignType)' == ''">none</SignType>
147+
</PropertyGroup>
148+
<Import Project="$(SignPath)\sign.targets" Condition="Exists('$(SignPath)\sign.targets')" />
149+
<Import Project="$(SignPath)\sign.microbuild.targets" Condition="Exists('$(SignPath)\sign.microbuild.targets')" />
150+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
151+
<PropertyGroup>
152+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
153+
</PropertyGroup>
154+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props'))" />
155+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets'))" />
156+
</Target>
157+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" />
140158
</Project>

samples/NuGet.Server.V2.Samples.OwinHost/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="MicroBuild.Core" version="0.3.0" targetFramework="net46" developmentDependency="true" />
34
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net461" />
45
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
56
<package id="Microsoft.AspNet.WebApi.OData" version="5.7.0" targetFramework="net45" />

src/NuGet.Server.Core/NuGet.Server.Core.csproj

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" />
34
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
45
<PropertyGroup>
56
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -12,6 +13,8 @@
1213
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
1314
<FileAlignment>512</FileAlignment>
1415
<TargetFrameworkProfile />
16+
<NuGetPackageImportStamp>
17+
</NuGetPackageImportStamp>
1518
</PropertyGroup>
1619
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1720
<DebugSymbols>true</DebugSymbols>
@@ -113,5 +116,20 @@
113116
</EmbeddedResource>
114117
</ItemGroup>
115118
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
116-
<Import Project="..\..\build\sign.targets" Condition="Exists('..\..\build\sign.targets')" />
119+
<PropertyGroup>
120+
<SignPath>..\..\build</SignPath>
121+
<SignPath Condition="'$(BUILD_SOURCESDIRECTORY)' != ''">$(BUILD_SOURCESDIRECTORY)\build</SignPath>
122+
<SignPath Condition="'$(NuGetBuildPath)' != ''">$(NuGetBuildPath)</SignPath>
123+
<SignType Condition="'$(SignType)' == ''">none</SignType>
124+
</PropertyGroup>
125+
<Import Project="$(SignPath)\sign.targets" Condition="Exists('$(SignPath)\sign.targets')" />
126+
<Import Project="$(SignPath)\sign.microbuild.targets" Condition="Exists('$(SignPath)\sign.microbuild.targets')" />
127+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
128+
<PropertyGroup>
129+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
130+
</PropertyGroup>
131+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props'))" />
132+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets'))" />
133+
</Target>
134+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" />
117135
</Project>

src/NuGet.Server.Core/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="MicroBuild.Core" version="0.3.0" targetFramework="net46" developmentDependency="true" />
34
<package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net46" />
45
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net46" />
56
<package id="NuGet.Core" version="2.14.0" targetFramework="net46" />

src/NuGet.Server.V2/NuGet.Server.V2.csproj

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" />
34
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
45
<PropertyGroup>
56
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@@ -12,6 +13,8 @@
1213
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
1314
<FileAlignment>512</FileAlignment>
1415
<TargetFrameworkProfile />
16+
<NuGetPackageImportStamp>
17+
</NuGetPackageImportStamp>
1518
</PropertyGroup>
1619
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
1720
<DebugSymbols>true</DebugSymbols>
@@ -117,5 +120,20 @@
117120
</ProjectReference>
118121
</ItemGroup>
119122
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
120-
<Import Project="..\..\build\sign.targets" Condition="Exists('..\..\build\sign.targets')" />
123+
<PropertyGroup>
124+
<SignPath>..\..\build</SignPath>
125+
<SignPath Condition="'$(BUILD_SOURCESDIRECTORY)' != ''">$(BUILD_SOURCESDIRECTORY)\build</SignPath>
126+
<SignPath Condition="'$(NuGetBuildPath)' != ''">$(NuGetBuildPath)</SignPath>
127+
<SignType Condition="'$(SignType)' == ''">none</SignType>
128+
</PropertyGroup>
129+
<Import Project="$(SignPath)\sign.targets" Condition="Exists('$(SignPath)\sign.targets')" />
130+
<Import Project="$(SignPath)\sign.microbuild.targets" Condition="Exists('$(SignPath)\sign.microbuild.targets')" />
131+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
132+
<PropertyGroup>
133+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
134+
</PropertyGroup>
135+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props'))" />
136+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets'))" />
137+
</Target>
138+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" />
121139
</Project>

src/NuGet.Server.V2/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="MicroBuild.Core" version="0.3.0" targetFramework="net46" developmentDependency="true" />
34
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
45
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
56
<package id="Microsoft.AspNet.WebApi.OData" version="5.7.0" targetFramework="net45" />

src/NuGet.Server/NuGet.Server.csproj

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" />
34
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
45
<Import Project="..\..\NuGet.Settings.targets" />
56
<PropertyGroup>
@@ -159,7 +160,14 @@
159160
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
160161
</PropertyGroup>
161162
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
162-
<Import Project="..\..\build\sign.targets" Condition="Exists('..\..\build\sign.targets')" />
163+
<PropertyGroup>
164+
<SignPath>..\..\build</SignPath>
165+
<SignPath Condition="'$(BUILD_SOURCESDIRECTORY)' != ''">$(BUILD_SOURCESDIRECTORY)\build</SignPath>
166+
<SignPath Condition="'$(NuGetBuildPath)' != ''">$(NuGetBuildPath)</SignPath>
167+
<SignType Condition="'$(SignType)' == ''">none</SignType>
168+
</PropertyGroup>
169+
<Import Project="$(SignPath)\sign.targets" Condition="Exists('$(SignPath)\sign.targets')" />
170+
<Import Project="$(SignPath)\sign.microbuild.targets" Condition="Exists('$(SignPath)\sign.microbuild.targets')" />
163171
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' " />
164172
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
165173
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
@@ -183,4 +191,12 @@
183191
<PostBuildEvent>REM Rename the Web.config file for packing.
184192
copy $(ProjectDir)Web.config $(TargetDir)Web.config.transform &gt;NUL</PostBuildEvent>
185193
</PropertyGroup>
194+
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
195+
<PropertyGroup>
196+
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
197+
</PropertyGroup>
198+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.props'))" />
199+
<Error Condition="!Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets'))" />
200+
</Target>
201+
<Import Project="..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets" Condition="Exists('..\..\packages\MicroBuild.Core.0.3.0\build\MicroBuild.Core.targets')" />
186202
</Project>

src/NuGet.Server/packages.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3+
<package id="MicroBuild.Core" version="0.3.0" targetFramework="net46" developmentDependency="true" />
34
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net46" />
45
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net46" />
56
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net46" />

test/NuGet.Server.Core.Tests/NuGet.Server.Core.Tests.csproj

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,17 @@
113113
<EmbeddedResource Include="TestData\NuGet.Core.2.12.0.nupkg" />
114114
</ItemGroup>
115115
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
116-
<Import Project="..\..\build\sign.targets" Condition="Exists('..\..\build\sign.targets')" />
116+
<!--
117+
Even though this is a test project, it needs to be strong-named because it tests internal fields of a strong-named project.
118+
Strong-name signed assemblies must specify a public key in their InternalsVisibleTo declarations.
119+
-->
120+
<PropertyGroup>
121+
<SignPath>..\..\build</SignPath>
122+
<SignPath Condition="'$(BUILD_SOURCESDIRECTORY)' != ''">$(BUILD_SOURCESDIRECTORY)\build</SignPath>
123+
<SignPath Condition="'$(NuGetBuildPath)' != ''">$(NuGetBuildPath)</SignPath>
124+
<SignType Condition="'$(SignType)' == ''">none</SignType>
125+
</PropertyGroup>
126+
<Import Project="$(SignPath)\sign.targets" Condition="Exists('$(SignPath)\sign.targets')" />
117127
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
118128
<PropertyGroup>
119129
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>

0 commit comments

Comments
 (0)