Refactor DEB.proj

This commit is contained in:
Piotr Puszkiewicz 2016-08-27 17:49:21 -07:00
parent 8eecff0112
commit 3a2632f6d5
4 changed files with 99 additions and 92 deletions

View file

@ -16,23 +16,26 @@
BuildInParallel="False"
Projects="$(RepoRoot)/build/package/Microsoft.DotNet.Cli.Installer.DEB.proj"
Properties="ArtifactNameWithVersionSdk=$(ArtifactNameWithVersionSdk);
OSName=$(OSName);
CLIBuildDll=$(CLIBuildDll);
CliSdkRoot=$(Stage2Directory)/sdk;
DownloadedSharedHostInstallerFile=$(DownloadedSharedHostInstallerFile);
CLISdkRoot=$(Stage2Directory)/sdk;
DownloadedHostFxrInstallerFile=$(DownloadedHostFxrInstallerFile);
DownloadedSharedFrameworkInstallerFile=$(DownloadedSharedFrameworkInstallerFile);
RepoRoot=$(RepoRoot);
PackagesDirectory=$(PackagesDirectory);
IntermediateDirectory=$(IntermediateDirectory);
InstallerExtension=$(InstallerExtension);
DownloadedSharedHostInstallerFile=$(DownloadedSharedHostInstallerFile);
HostFxrVersion=$(HostFxrVersion);
InstallerExtension=$(InstallerExtension);
IntermediateDirectory=$(IntermediateDirectory);
OSName=$(OSName);
PackagesDirectory=$(PackagesDirectory);
RepoRoot=$(RepoRoot);
SdkBrandName=$(SdkBrandName);
SdkVersion=$(SdkVersion);
SharedFrameworkBrandName=$(SharedFrameworkBrandName);
SharedFrameworkName=$(SharedFrameworkName);
SharedFrameworkVersion=$(SharedFrameworkVersion);
SharedFrameworkBrandName=$(SharedFrameworkBrandName);
SdkBrandName=$(SdkBrandName);
ToolPath=$(Stage2Directory);"/>
ToolPath=$(Stage2Directory);">
<Output TaskParameter="GeneratedInstallers"
ItemName="GeneratedInstallers" />
</MSBuild>
</Target>
<Target Name="Package"

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTarget="GenerateDebs">
<PropertyGroup>
@ -15,55 +15,54 @@
<Target Name="GenerateDebs"
DependsOnTargets="TestDebuild;
GenerateSdkDeb;
BuildSdkDeb;
TestSdkDeb;"
Condition=" '$(OSName)' == 'ubuntu' " />
<Target Name="GenerateSdkDeb"
<Target Name="BuildSdkDeb"
Condition=" '$(OSName)' == 'ubuntu' and '$(DebuildPresent)' == 'true' "
DependsOnTargets="PrepareDotnetDebDirectories;
PrepareDotnetDebTool;"
Inputs="@(SdkDebInputFiles)"
Inputs="@(CLISdkFiles)"
Outputs="$(SdkInstallerFile)" >
<!-- Install Packages -->
<!-- Install Shared Framework Packages -->
<Exec Command="sudo dpkg -i $(DownloadedSharedHostInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedHostFxrInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedSharedFrameworkInstallerFile)" />
<!-- Create layout -->
<!-- Create layout: Binaries -->
<Copy
DestinationFiles="@(SdkDebInputFiles->'$(DebLayoutPackageRootDir)/sdk/%(RecursiveDir)%(Filename)%(Extension)')"
SourceFiles="@(SdkDebInputFiles)"
DestinationFiles="@(CLISdkFiles->'$(LayoutPackageRootDir)/sdk/%(RecursiveDir)%(Filename)%(Extension)')"
SourceFiles="@(CLISdkFiles)"
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False">
</Copy>
UseHardlinksIfPossible="False" />
<!-- Create layout: Man Pages -->
<Copy
DestinationFiles="@(SdkDebManPageFiles->'$(DebLayoutDocsDir)/%(RecursiveDir)%(Filename)-$(SdkVersion)%(Extension)')"
DestinationFiles="@(SdkDebManPageFiles->'$(LayoutDocsDir)/%(RecursiveDir)%(Filename)-$(SdkVersion)%(Extension)')"
SourceFiles="@(SdkDebManPageFiles)"
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False">
</Copy>
UseHardlinksIfPossible="False" />
<!-- Create layout: Generate and Place debian_config.json -->
<ReplaceFileContents
InputFile="$(DebianConfigTemplateFile)"
DestinationFile="$(DebianConfigJsonFile)"
ReplacementPatterns="@(SdkDebianPackageTemplateReplacement -> '%(Identity)')"
ReplacementStrings="@(SdkDebianPackageTemplateReplacement -> '%(ReplacementString)')" />
<MakeDir Directories="$(DotNetDebToolOutputDirectory)" />
ReplacementPatterns="@(DebianConfigTokenValues -> '%(Identity)')"
ReplacementStrings="@(DebianConfigTokenValues -> '%(ReplacementString)')" />
<!-- Build SDK Deb package -->
<DotNetDebTool ToolPath="$(ToolPath)"
InputDir="$(SdkDebianLayoutOutputDirectory)"
OutputFile="$(DotNetDebToolOutputDirectory)"
InputDirectory="$(LayoutDirectory)"
OutputDirectory="$(DotNetDebToolOutputDirectory)"
PackageName="$(SdkDebianPackageName)"
PackageVersion="$(SdkVersion)"
WorkingDirectory="$(DotnetDebToolDir)" />
<!-- Copy package to output -->
<!-- Copy SDK package to output -->
<ItemGroup>
<GeneratedDebFiles Include="$(DotNetDebToolOutputDirectory)/*.deb" />
</ItemGroup>
@ -77,11 +76,11 @@
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False" />
<!-- Remove Packages -->
<!-- Remove Shared Framework and Debian Packages -->
<Exec Command="sudo dpkg -r $(SdkDebianPackageName)" />
<Exec Command="sudo dpkg -r $(SharedFrameworkDebianPackageName)" />
<Exec Command="sudo dpkg -r $(SharedFxDebianPackageName)" />
<Exec Command="sudo dpkg -r $(HostFxrDebianPackageName)" />
<Exec Command="sudo dpkg -r $(SharedHostDebianPackageName)" />
<Exec Command="sudo dpkg -r $(HostDebianPackageName)" />
</Target>
<Target Name="TestSdkDeb"
@ -92,7 +91,7 @@
$(SdkInstallerFile);"
Outputs="$(DebianTestResultsXmlFile)" >
<!-- Install v(N-1) Packages -->
<!-- Install Dependencies and SDK Packages -->
<Exec Command="sudo dpkg -i $(DownloadedSharedHostInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedHostFxrInstallerFile)" />
<Exec Command="sudo dpkg -i $(DownloadedSharedFrameworkInstallerFile)" />
@ -104,36 +103,39 @@
ToolPath="$(DebianInstalledDirectory)"
Xml="$(DebianTestResultsXmlFile)" />
<!-- Remove Packages -->
<!-- Clean up Packages -->
<Exec Command="sudo dpkg -r $(SdkDebianPackageName)" />
<Exec Command="sudo dpkg -r $(SharedFrameworkDebianPackageName)" />
<Exec Command="sudo dpkg -r $(SharedFxDebianPackageName)" />
<Exec Command="sudo dpkg -r $(HostFxrDebianPackageName)" />
<Exec Command="sudo dpkg -r $(SharedHostDebianPackageName)" />
<Exec Command="sudo dpkg -r $(HostDebianPackageName)" />
</Target>
<Target Name="PrepareDotnetDebDirectories">
<!-- Clean the workspace -->
<ItemGroup>
<SdkDebianFilesToClean Remove="*" />
<SdkDebianFilesToClean Include="$(SdkInstallerFile)" />
<FilesToClean Remove="*" />
<FilesToClean Include="$(SdkInstallerFile)" />
<SdkDebianDirectoriesToClean Remove="*" />
<SdkDebianDirectoriesToClean Include="$(SdkDebianIntermediateDirectory);
$(SdkDebianLayoutOutputDirectory)" />
<WorkspaceDirectories Remove="*" />
<WorkspaceDirectories Include="$(SdkDebianIntermediateDirectory);
$(LayoutDirectory)" />
<SdkDebianLayoutSubDirectories Remove="*" />
<SdkDebianLayoutSubDirectories Include="$(DebLayoutPackageRootDir);
$(DebLayoutAbsolutePlacementDir);
$(DebLayoutSamplesDir);
$(DebLayoutDocsDir);
$(DebLayoutDebianFilesDir)" />
<LayoutSubDirectories Remove="*" />
<LayoutSubDirectories Include="$(LayoutPackageRootDir);
$(LayoutAbsolutePlacementDir);
$(LayoutSamplesDir);
$(LayoutDocsDir);
$(LayoutDebianFilesDir)" />
</ItemGroup>
<Delete Files="@(SdkDebianFilesToClean)" />
<RemoveDir Directories="@(SdkDebianDirectoriesToClean)" />
<MakeDir Directories="@(SdkDebianDirectoriesToClean)" />
<MakeDir Directories="@(SdkDebianLayoutSubDirectories)" />
<Delete Files="@(FilesToClean)" />
<RemoveDir Directories="@(WorkspaceDirectories)" />
<!-- Rebuild the workspace -->
<MakeDir Directories="@(WorkspaceDirectories)" />
<MakeDir Directories="@(LayoutSubDirectories)" />
<MakeDir Directories="$(DotNetDebToolOutputDirectory)" />
</Target>
<Target Name="PrepareDotnetDebTool"
@ -147,7 +149,9 @@
<Target Name="WriteDotnetDebToolProjectJson"
Inputs="$(MSBuildThisFile);$(MSBuildThisFileDirectory)/Microsoft.DotNet.Cli.Installer.DEB.props"
Outputs="$(DotnetDebToolDir)/project.json">
<MakeDir Condition=" !Exists($(DotnetDebToolDir)) " Directories="$(DotnetDebToolDir)" />
<MakeDir Condition=" !Exists($(DotnetDebToolDir)) "
Directories="$(DotnetDebToolDir)" />
<WriteLinesToFile File="$(DotnetDebToolDir)/project.json"
Lines="@(DotnetDebToolProjectJsonLines)"
@ -155,11 +159,13 @@
</Target>
<Target Name="TestDebuild">
<!-- run Debuild -->
<Exec Command="/usr/bin/env debuild -h" ContinueOnError="true">
<Output TaskParameter="ExitCode" PropertyName="DebuildExitCode" />
</Exec>
<!-- Debuild -->
<!-- Check if it returned 0 -->
<PropertyGroup>
<DebuildPresent>false</DebuildPresent>
<DebuildPresent Condition=" '$(DebuildExitCode)' == '0' ">true</DebuildPresent>

View file

@ -22,24 +22,24 @@
<PropertyGroup>
<DebianInstalledDirectory>/usr/share/dotnet</DebianInstalledDirectory>
<DebLayoutPackageRootDirName>package_root</DebLayoutPackageRootDirName>
<DebLayoutAbsolutePlacementDirName>$</DebLayoutAbsolutePlacementDirName>
<DebLayoutSamplesDirName>samples</DebLayoutSamplesDirName>
<DebLayoutDocsDirName>docs</DebLayoutDocsDirName>
<DebLayoutDebianFilesDirName>debian</DebLayoutDebianFilesDirName>
<LayoutPackageRootDirName>package_root</LayoutPackageRootDirName>
<LayoutAbsolutePlacementDirName>$</LayoutAbsolutePlacementDirName>
<LayoutSamplesDirName>samples</LayoutSamplesDirName>
<LayoutDocsDirName>docs</LayoutDocsDirName>
<LayoutDebianFilesDirName>debian</LayoutDebianFilesDirName>
</PropertyGroup>
<!-- Package Identities -->
<PropertyGroup>
<SdkDebianPackageVersion>$(SdkVersion)</SdkDebianPackageVersion>
<SdkDebianPackageName>dotnet-dev-$(SdkDebianPackageVersion)</SdkDebianPackageName>
<SharedFrameworkDebianPackageVersion>$(SharedFrameworkVersion)</SharedFrameworkDebianPackageVersion>
<SharedFrameworkDebianPackageName>dotnet-sharedframework-$(SharedFrameworkName)-$(SharedFrameworkDebianPackageVersion)</SharedFrameworkDebianPackageName>
<SharedFrameworkDebianPackageName>$(SharedFrameworkDebianPackageName.ToLower())</SharedFrameworkDebianPackageName>
<SharedFxDebianPackageVersion>$(SharedFrameworkVersion)</SharedFxDebianPackageVersion>
<SharedFxDebianPackageName>dotnet-sharedframework-$(SharedFrameworkName)-$(SharedFxDebianPackageVersion)</SharedFxDebianPackageName>
<SharedFxDebianPackageName>$(SharedFxDebianPackageName.ToLower())</SharedFxDebianPackageName>
<HostFxrDebianPackageVersion>$(HostFxrVersion)</HostFxrDebianPackageVersion>
<HostFxrDebianPackageName>dotnet-hostfxr-$(HostFxrDebianPackageVersion)</HostFxrDebianPackageName>
<HostFxrDebianPackageName>$(HostFxrDebianPackageName.ToLower())</HostFxrDebianPackageName>
<SharedHostDebianPackageName>dotnet-host</SharedHostDebianPackageName>
<HostDebianPackageName>dotnet-host</HostDebianPackageName>
</PropertyGroup>
<!-- Inputs -->
@ -49,7 +49,7 @@
</PropertyGroup>
<ItemGroup>
<SdkDebInputFiles Include="$(CliSdkRoot)/**/*" />
<CLISdkFiles Include="$(CLISdkRoot)/**/*" />
<SdkDebManPageFiles Include="$(ManpagesDirectory)/**/*" />
</ItemGroup>
@ -65,41 +65,39 @@
<!-- Layout Directories -->
<PropertyGroup>
<SdkDebianLayoutOutputDirectory>$(SdkDebianIntermediateDirectory)/debianLayoutDirectory</SdkDebianLayoutOutputDirectory>
<DebLayoutPackageRootDir>$(SdkDebianLayoutOutputDirectory)/$(DebLayoutPackageRootDirName)</DebLayoutPackageRootDir>
<DebLayoutAbsolutePlacementDir>$(SdkDebianLayoutOutputDirectory)/$(DebLayoutAbsolutePlacementDirName)</DebLayoutAbsolutePlacementDir>
<DebLayoutSamplesDir>$(SdkDebianLayoutOutputDirectory)/$(DebLayoutSamplesDirName)</DebLayoutSamplesDir>
<DebLayoutDocsDir>$(SdkDebianLayoutOutputDirectory)/$(DebLayoutDocsDirName)</DebLayoutDocsDir>
<DebLayoutDebianFilesDir>$(SdkDebianLayoutOutputDirectory)/$(DebLayoutDebianFilesDirName)</DebLayoutDebianFilesDir>
<LayoutDirectory>$(SdkDebianIntermediateDirectory)/debianLayoutDirectory</LayoutDirectory>
<LayoutPackageRootDir>$(LayoutDirectory)/$(LayoutPackageRootDirName)</LayoutPackageRootDir>
<LayoutAbsolutePlacementDir>$(LayoutDirectory)/$(LayoutAbsolutePlacementDirName)</LayoutAbsolutePlacementDir>
<LayoutSamplesDir>$(LayoutDirectory)/$(LayoutSamplesDirName)</LayoutSamplesDir>
<LayoutDocsDir>$(LayoutDirectory)/$(LayoutDocsDirName)</LayoutDocsDir>
<LayoutDebianFilesDir>$(LayoutDirectory)/$(LayoutDebianFilesDirName)</LayoutDebianFilesDir>
</PropertyGroup>
<!-- debian_config.json -->
<PropertyGroup>
<DebianConfigTemplateFileName>dotnet-debian_config.json</DebianConfigTemplateFileName>
<DebianConfigTemplateFile>$(RepoRoot)/packaging/deb/$(DebianConfigTemplateFileName)</DebianConfigTemplateFile>
<DebianConfigJsonFileName>debian_config.json</DebianConfigJsonFileName>
<DebianConfigJsonFile>$(SdkDebianLayoutOutputDirectory)/$(DebianConfigJsonFileName)</DebianConfigJsonFile>
<DebianConfigTemplateFile>$(RepoRoot)/packaging/deb/dotnet-debian_config.json</DebianConfigTemplateFile>
<DebianConfigJsonFile>$(LayoutDirectory)/debian_config.json</DebianConfigJsonFile>
</PropertyGroup>
<ItemGroup>
<SdkDebianPackageTemplateReplacement Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(SharedFrameworkDebianPackageName)</ReplacementString>
</SdkDebianPackageTemplateReplacement>
<SdkDebianPackageTemplateReplacement Include="%SHARED_FRAMEWORK_NUGET_NAME%">
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%">
<ReplacementString>$(SharedFxDebianPackageName)</ReplacementString>
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_NUGET_NAME%">
<ReplacementString>$(SharedFrameworkName)</ReplacementString>
</SdkDebianPackageTemplateReplacement>
<SdkDebianPackageTemplateReplacement Include="%SHARED_FRAMEWORK_NUGET_VERSION%">
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_NUGET_VERSION%">
<ReplacementString>$(SharedFrameworkVersion)</ReplacementString>
</SdkDebianPackageTemplateReplacement>
<SdkDebianPackageTemplateReplacement Include="%SHARED_FRAMEWORK_BRAND_NAME%">
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_BRAND_NAME%">
<ReplacementString>$(SharedFrameworkBrandName)</ReplacementString>
</SdkDebianPackageTemplateReplacement>
<SdkDebianPackageTemplateReplacement Include="%SDK_NUGET_VERSION%">
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%SDK_NUGET_VERSION%">
<ReplacementString>$(SdkVersion)</ReplacementString>
</SdkDebianPackageTemplateReplacement>
<SdkDebianPackageTemplateReplacement Include="%CLI_SDK_BRAND_NAME%">
</DebianConfigTokenValues>
<DebianConfigTokenValues Include="%CLI_SDK_BRAND_NAME%">
<ReplacementString>$(SdkBrandName)</ReplacementString>
</SdkDebianPackageTemplateReplacement>
</DebianConfigTokenValues>
</ItemGroup>
<ItemGroup>

View file

@ -19,10 +19,10 @@ namespace Microsoft.DotNet.Cli.Build
}
[Required]
public string InputDir { get; set; }
public string InputDirectory { get; set; }
[Required]
public string OutputFile { get; set; }
public string OutputDirectory { get; set; }
[Required]
public string PackageName { get; set; }
@ -32,12 +32,12 @@ namespace Microsoft.DotNet.Cli.Build
private string GetInputDir()
{
return $"-i {InputDir}";
return $"-i {InputDirectory}";
}
private string GetOutputFile()
{
return $"-o {OutputFile}";
return $"-o {OutputDirectory}";
}
private string GetPackageName()