Refactor DEB.proj
This commit is contained in:
parent
8eecff0112
commit
3a2632f6d5
4 changed files with 99 additions and 92 deletions
|
@ -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"
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Reference in a new issue