2016-06-28 01:26:57 +00:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
2016-08-28 04:10:23 +00:00
|
|
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
2016-08-25 22:53:15 +00:00
|
|
|
|
2016-08-27 22:57:14 +00:00
|
|
|
<UsingTask TaskName="DotNetDebTool" AssemblyFile="$(CLIBuildDll)" />
|
|
|
|
|
2017-02-14 23:42:13 +00:00
|
|
|
<Import Project="Installer.DEB.targets" />
|
2016-08-19 21:52:06 +00:00
|
|
|
|
|
|
|
<Target Name="GenerateDebs"
|
2016-08-30 18:45:58 +00:00
|
|
|
DependsOnTargets="SetupDebProps;
|
|
|
|
TestDebuild;
|
2016-08-28 00:49:21 +00:00
|
|
|
BuildSdkDeb;
|
2016-08-19 21:52:06 +00:00
|
|
|
TestSdkDeb;"
|
2017-06-13 19:42:51 +00:00
|
|
|
Condition=" '$(IsDebianBaseDistro)' == 'True' "
|
2016-08-28 04:10:23 +00:00
|
|
|
Outputs="@(GeneratedInstallers)"/>
|
2016-08-18 17:11:20 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<Target Name="BuildSdkDeb"
|
2017-06-13 19:42:51 +00:00
|
|
|
Condition=" '$(IsDebianBaseDistro)' == 'True' AND '$(DebuildPresent)' == 'true' "
|
2016-08-27 22:57:14 +00:00
|
|
|
DependsOnTargets="PrepareDotnetDebDirectories;
|
2017-07-13 19:07:51 +00:00
|
|
|
PrepareDotnetDebTool;
|
|
|
|
DownloadAspNetCoreRuntimeDebInstaller;"
|
2016-08-28 00:49:21 +00:00
|
|
|
Inputs="@(CLISdkFiles)"
|
2016-08-18 17:11:20 +00:00
|
|
|
Outputs="$(SdkInstallerFile)" >
|
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Install Shared Framework Packages -->
|
2016-08-18 17:11:20 +00:00
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedSharedHostInstallerFile)" />
|
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedHostFxrInstallerFile)" />
|
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedSharedFrameworkInstallerFile)" />
|
2017-07-13 19:07:51 +00:00
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedSharedAspNetCoreRuntime)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Create layout: Binaries -->
|
2016-08-19 21:52:06 +00:00
|
|
|
<Copy
|
2016-08-28 00:49:21 +00:00
|
|
|
DestinationFiles="@(CLISdkFiles->'$(LayoutPackageRootDir)/sdk/%(RecursiveDir)%(Filename)%(Extension)')"
|
2017-04-26 19:12:25 +00:00
|
|
|
SourceFiles="@(CLISdkFiles)"
|
2016-08-19 21:52:06 +00:00
|
|
|
OverwriteReadOnlyFiles="True"
|
|
|
|
SkipUnchangedFiles="False"
|
2016-08-28 00:49:21 +00:00
|
|
|
UseHardlinksIfPossible="False" />
|
2017-04-26 19:12:25 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Create layout: Man Pages -->
|
2016-08-19 21:52:06 +00:00
|
|
|
<Copy
|
2016-08-28 00:49:21 +00:00
|
|
|
DestinationFiles="@(SdkDebManPageFiles->'$(LayoutDocsDir)/%(RecursiveDir)%(Filename)-$(SdkVersion)%(Extension)')"
|
2016-08-19 21:52:06 +00:00
|
|
|
SourceFiles="@(SdkDebManPageFiles)"
|
|
|
|
OverwriteReadOnlyFiles="True"
|
|
|
|
SkipUnchangedFiles="False"
|
2016-08-28 00:49:21 +00:00
|
|
|
UseHardlinksIfPossible="False" />
|
2016-08-19 21:52:06 +00:00
|
|
|
|
2017-07-27 06:10:48 +00:00
|
|
|
<!-- Create layout: Generate and Place postinst -->
|
|
|
|
<ReplaceFileContents
|
|
|
|
InputFile="$(DebianPostinstTemplateFile)"
|
|
|
|
DestinationFile="$(DebianPostinstFile)"
|
|
|
|
ReplacementItems="@(DebianPostInstTokenValues)" />
|
|
|
|
|
|
|
|
<Chmod
|
|
|
|
Glob="$(DebianPostinstFile)"
|
|
|
|
Mode="ugo+x" />
|
2017-04-26 19:12:25 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Create layout: Generate and Place debian_config.json -->
|
2016-08-27 22:57:14 +00:00
|
|
|
<ReplaceFileContents
|
|
|
|
InputFile="$(DebianConfigTemplateFile)"
|
|
|
|
DestinationFile="$(DebianConfigJsonFile)"
|
2017-02-23 21:24:21 +00:00
|
|
|
ReplacementItems="@(DebianConfigTokenValues)" />
|
2016-08-27 22:57:14 +00:00
|
|
|
|
2017-04-26 19:12:25 +00:00
|
|
|
<Chmod
|
2017-03-03 21:30:57 +00:00
|
|
|
Glob="$(PackageTool)"
|
|
|
|
Mode="u+x" />
|
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Build SDK Deb package -->
|
2017-02-22 17:55:36 +00:00
|
|
|
<DotNetDebTool ToolPath="$(Stage0Directory)"
|
2016-08-28 00:49:21 +00:00
|
|
|
InputDirectory="$(LayoutDirectory)"
|
|
|
|
OutputDirectory="$(DotNetDebToolOutputDirectory)"
|
2016-08-19 21:52:06 +00:00
|
|
|
PackageName="$(SdkDebianPackageName)"
|
|
|
|
PackageVersion="$(SdkVersion)"
|
|
|
|
WorkingDirectory="$(DotnetDebToolDir)" />
|
2017-04-26 19:12:25 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Copy SDK package to output -->
|
2016-08-27 22:57:14 +00:00
|
|
|
<ItemGroup>
|
|
|
|
<GeneratedDebFiles Include="$(DotNetDebToolOutputDirectory)/*.deb" />
|
|
|
|
</ItemGroup>
|
2017-04-26 19:12:25 +00:00
|
|
|
|
2016-08-27 22:57:14 +00:00
|
|
|
<Error Text="@(GeneratedDebFiles->Count()) .deb files generated." Condition="'@(GeneratedDebFiles->Count())' != 1" />
|
|
|
|
|
|
|
|
<Copy
|
|
|
|
DestinationFiles="$(SdkInstallerFile)"
|
|
|
|
SourceFiles="@(GeneratedDebFiles)"
|
|
|
|
OverwriteReadOnlyFiles="True"
|
|
|
|
SkipUnchangedFiles="False"
|
|
|
|
UseHardlinksIfPossible="False" />
|
2016-08-18 17:11:20 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Remove Shared Framework and Debian Packages -->
|
2016-08-18 17:11:20 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(SdkDebianPackageName)" />
|
2017-07-13 19:07:51 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(AspNetCoreRuntimePackageName)" />
|
2016-08-28 00:49:21 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(SharedFxDebianPackageName)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(HostFxrDebianPackageName)" />
|
2017-01-06 00:06:16 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(HostDebianPackageName)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
</Target>
|
|
|
|
|
|
|
|
<Target Name="TestSdkDeb"
|
2017-06-13 19:42:51 +00:00
|
|
|
Condition=" '$(IsDebianBaseDistro)' == 'True' and '$(DebuildPresent)' == 'true' "
|
2017-06-13 20:10:28 +00:00
|
|
|
DependsOnTargets="RestoreTests"
|
2016-08-18 17:11:20 +00:00
|
|
|
Inputs="$(DownloadedSharedHostInstallerFile);
|
|
|
|
$(DownloadedHostFxrInstallerFile);
|
|
|
|
$(DownloadedSharedFrameworkInstallerFile);
|
|
|
|
$(SdkInstallerFile);"
|
|
|
|
Outputs="$(DebianTestResultsXmlFile)" >
|
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Install Dependencies and SDK Packages -->
|
2017-01-25 19:43:07 +00:00
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedSharedHostInstallerFile)" />
|
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedHostFxrInstallerFile)" />
|
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedSharedFrameworkInstallerFile)" />
|
2017-07-13 19:07:51 +00:00
|
|
|
<Exec Command="sudo dpkg -i $(DownloadedSharedAspNetCoreRuntime)" />
|
2017-01-25 19:43:07 +00:00
|
|
|
|
2016-08-18 17:11:20 +00:00
|
|
|
<Exec Command="sudo dpkg -i $(SdkInstallerFile)" />
|
|
|
|
|
|
|
|
<!-- Run E2E -->
|
2017-04-26 19:12:25 +00:00
|
|
|
<DotNetRestore ProjectPath="$(EndToEndTestProject)"
|
|
|
|
ToolPath="$(DebianInstalledDirectory)" />
|
|
|
|
|
2016-11-12 07:46:29 +00:00
|
|
|
<DotNetTest ProjectPath="$(EndToEndTestProject)"
|
2016-08-18 17:11:20 +00:00
|
|
|
EnvironmentVariables="@(TestSdkDebTaskEnvironmentVariables)"
|
2017-01-26 20:52:55 +00:00
|
|
|
ToolPath="$(DebianInstalledDirectory)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Clean up Packages -->
|
2016-08-18 17:11:20 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(SdkDebianPackageName)" />
|
2017-07-13 19:07:51 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(AspNetCoreRuntimePackageName)" />
|
2016-08-28 00:49:21 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(SharedFxDebianPackageName)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(HostFxrDebianPackageName)" />
|
2017-01-06 00:06:16 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<Exec Command="sudo dpkg -r $(HostDebianPackageName)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
</Target>
|
|
|
|
|
2016-08-19 21:52:06 +00:00
|
|
|
<Target Name="PrepareDotnetDebDirectories">
|
|
|
|
|
|
|
|
<!-- Clean the workspace -->
|
|
|
|
<ItemGroup>
|
2016-08-28 00:49:21 +00:00
|
|
|
<FilesToClean Remove="*" />
|
|
|
|
<FilesToClean Include="$(SdkInstallerFile)" />
|
|
|
|
|
|
|
|
<WorkspaceDirectories Remove="*" />
|
|
|
|
<WorkspaceDirectories Include="$(SdkDebianIntermediateDirectory);
|
|
|
|
$(LayoutDirectory)" />
|
|
|
|
|
|
|
|
<LayoutSubDirectories Remove="*" />
|
|
|
|
<LayoutSubDirectories Include="$(LayoutPackageRootDir);
|
|
|
|
$(LayoutAbsolutePlacementDir);
|
|
|
|
$(LayoutSamplesDir);
|
|
|
|
$(LayoutDocsDir);
|
|
|
|
$(LayoutDebianFilesDir)" />
|
2016-08-19 21:52:06 +00:00
|
|
|
</ItemGroup>
|
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<Delete Files="@(FilesToClean)" />
|
|
|
|
<RemoveDir Directories="@(WorkspaceDirectories)" />
|
|
|
|
|
|
|
|
<!-- Rebuild the workspace -->
|
|
|
|
<MakeDir Directories="@(WorkspaceDirectories)" />
|
|
|
|
<MakeDir Directories="@(LayoutSubDirectories)" />
|
|
|
|
<MakeDir Directories="$(DotNetDebToolOutputDirectory)" />
|
2016-08-19 21:52:06 +00:00
|
|
|
</Target>
|
2016-08-18 17:11:20 +00:00
|
|
|
|
|
|
|
<Target Name="PrepareDotnetDebTool"
|
2017-02-22 17:55:36 +00:00
|
|
|
DependsOnTargets="WriteDotnetDebToolProject">
|
2016-08-18 17:11:20 +00:00
|
|
|
|
2017-02-22 17:55:36 +00:00
|
|
|
<DotNetRestore ToolPath="$(Stage0Directory)"
|
|
|
|
WorkingDirectory="$(DotnetDebToolDir)" />
|
2016-08-18 17:11:20 +00:00
|
|
|
</Target>
|
|
|
|
|
2017-03-03 09:08:58 +00:00
|
|
|
<Target Name="WriteDotnetDebToolProject"
|
|
|
|
Inputs="$(MSBuildThisFileDirectory)/$(DotnetDebToolConsumerProjectName)"
|
|
|
|
Outputs="$(DotnetDebToolDir)/$(DotnetDebToolConsumerProjectName)">
|
2016-08-28 00:49:21 +00:00
|
|
|
|
2017-02-22 17:55:36 +00:00
|
|
|
<Copy SourceFiles="$(MSBuildThisFileDirectory)/$(DotnetDebToolConsumerProjectName)"
|
|
|
|
DestinationFiles="$(DotnetDebToolDir)/$(DotnetDebToolConsumerProjectName)" />
|
2016-08-19 21:52:06 +00:00
|
|
|
|
2016-08-25 22:53:15 +00:00
|
|
|
</Target>
|
2016-08-25 20:19:22 +00:00
|
|
|
|
2016-08-27 22:57:14 +00:00
|
|
|
<Target Name="TestDebuild">
|
2016-08-29 18:18:34 +00:00
|
|
|
<Message Text="Don't remove this" />
|
2017-04-26 19:12:25 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- run Debuild -->
|
2016-08-25 22:53:15 +00:00
|
|
|
<Exec Command="/usr/bin/env debuild -h" ContinueOnError="true">
|
|
|
|
<Output TaskParameter="ExitCode" PropertyName="DebuildExitCode" />
|
2017-04-26 19:12:25 +00:00
|
|
|
</Exec>
|
2016-08-25 20:19:22 +00:00
|
|
|
|
2016-08-28 00:49:21 +00:00
|
|
|
<!-- Check if it returned 0 -->
|
2016-08-25 22:53:15 +00:00
|
|
|
<PropertyGroup>
|
|
|
|
<DebuildPresent>false</DebuildPresent>
|
|
|
|
<DebuildPresent Condition=" '$(DebuildExitCode)' == '0' ">true</DebuildPresent>
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
<!-- Workaround for Ubuntu16 Jenkins https://github.com/dotnet/core-setup/issues/167 -->
|
|
|
|
<Message Condition=" '$(DebuildPresent)' != 'true' "
|
|
|
|
Text="Debuild Not found, Debian packages will not be built."
|
|
|
|
Importance="High" />
|
2016-08-25 20:19:22 +00:00
|
|
|
</Target>
|
2016-06-28 01:26:57 +00:00
|
|
|
</Project>
|