Skip to content
代码片段 群组 项目
未验证 提交 9876244c 编辑于 作者: William Godbe's avatar William Godbe 提交者: GitHub
浏览文件

[release/6.0] Build .rpm packages for linux arm64 (#40504)


* [release/6.0] Build .rpm packages for linux arm64

* Update Build.props

* Update Directory.Build.props

* Update Directory.Build.targets

* Update Rpm.Runtime.rpmproj

* Update Rpm.TargetingPack.rpmproj

* Avoid duplicate targeting-pack RPM Build
- if an RPM containing platform-neutral executables is platform-neutral, this should be enough

* !fixup! Change Linux ARM64 job, not ARM one

* Correct RPM arch name, include in targeting pack

* Revert "Avoid duplicate targeting-pack RPM Build"

This reverts commit 7bebff5b

* Rename x64 RPM to "x64"

Co-authored-by: default avatarDoug Bunting <6431421+dougbu@users.noreply.github.com>
上级 7c2000d3
No related branches found
No related tags found
无相关合并请求
......@@ -407,7 +407,6 @@ stages:
--no-build-nodejs
--no-build-java
-p:OnlyPackPlatformSpecificPackages=true
-p:AssetManifestFileName=aspnetcore-Linux_x64.xml
$(_BuildArgs)
$(_InternalRuntimeDownloadArgs)
displayName: Run build.sh
......@@ -496,17 +495,26 @@ stages:
jobName: Linux_arm64_build
jobDisplayName: "Build: Linux ARM64"
agentOs: Linux
buildArgs:
--arch arm64
--all
--pack
--no-build-nodejs
--no-build-java
-p:OnlyPackPlatformSpecificPackages=true
-p:AssetManifestFileName=aspnetcore-Linux_arm64.xml
$(_BuildArgs)
$(_PublishArgs)
$(_InternalRuntimeDownloadArgs)
steps:
- script: ./eng/build.sh
--ci
--arch arm64
--pack
--all
--no-build-nodejs
--no-build-java
-p:OnlyPackPlatformSpecificPackages=true
$(_BuildArgs)
$(_InternalRuntimeDownloadArgs)
displayName: Run build.sh
- script: git clean -xfd src/**/obj/;
./dockerbuild.sh rhel --ci --nobl --arch arm64 --build-installers --no-build-deps --no-build-nodejs
-p:OnlyPackPlatformSpecificPackages=true -p:BuildRuntimeArchive=false -p:LinuxInstallerType=rpm
-p:AssetManifestFileName=aspnetcore-Linux_arm64.xml
$(_BuildArgs)
$(_PublishArgs)
$(_InternalRuntimeDownloadArgs)
displayName: Build RPM installers
installNodeJs: false
installJdk: false
artifacts:
......
......@@ -95,7 +95,7 @@
<ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\SharedFrameworkLib\SharedFrameworkLib.wixproj" AdditionalProperties="Platform=arm64" />
</ItemGroup>
<ItemGroup Condition="'$(BuildInstallers)' == 'true' AND '$(TargetRuntimeIdentifier)' == 'linux-x64'">
<ItemGroup Condition="'$(BuildInstallers)' == 'true' AND ('$(TargetRuntimeIdentifier)' == 'linux-x64' OR '$(TargetRuntimeIdentifier)' == 'linux-arm64')">
<ProjectToBuild Condition=" '$(LinuxInstallerType)' == 'deb' "
Include="$(RepoRoot)src\Installers\Debian\**\*.*proj" />
<ProjectToBuild Condition=" '$(LinuxInstallerType)' == 'rpm' "
......
......@@ -9,9 +9,15 @@
<IntermediateOutputPath>$(IntermediateOutputPath)$(TargetRuntimeIdentifier)\</IntermediateOutputPath>
<OutputPath>$(InstallersOutputPath)</OutputPath>
<CblMariner1VersionSuffix>-cm.1</CblMariner1VersionSuffix>
<CblMariner2VersionSuffix>-cm.2</CblMariner2VersionSuffix>
<!-- All installers are shipping assets. -->
<IsShipping>true</IsShipping>
<IsPackable>true</IsPackable>
</PropertyGroup>
<!-- RPM files are platform-specific and should be named appropriately. -->
<RpmArch Condition=" '$(TargetArchitecture)' == 'x64' ">x64</RpmArch>
<RpmArch Condition=" '$(TargetArchitecture)' == 'arm64' ">aarch64</RpmArch>
</PropertyGroup>
</Project>
......@@ -18,7 +18,7 @@
<Target Name="PrepareForBuild">
<MakeDir Directories="$(IntermediateOutputPath)" />
<Error Text="Currently only linux-x64 is supported by Rpm installers." Condition=" '$(TargetRuntimeIdentifier)' != 'linux-x64' " />
<Error Text="Currently only linux-x64 and linux-arm64 are supported by Rpm installers." Condition=" '$(TargetRuntimeIdentifier)' != 'linux-x64' AND '$(TargetRuntimeIdentifier)' != 'linux-arm64'" />
<Error Text="Missing required property: RpmPackageInstallRoot" Condition=" '$(RpmPackageInstallRoot)' == '' " />
<Error Text="Missing required property: PackageContentRoot" Condition=" '$(PackageContentRoot)' == '' " />
......@@ -37,6 +37,11 @@
<Target Name="Pack" />
<Target Name="RpmBuild" DependsOnTargets="$(RpmBuildDependsOn)">
<PropertyGroup>
<CblMariner1TargetPath>$(InstallersOutputPath)$(CblMarinerBaseName)$(CblMariner1VersionSuffix)$(CblMarinerExtension)</CblMariner1TargetPath>
<CblMariner2TargetPath>$(InstallersOutputPath)$(CblMarinerBaseName)$(CblMariner2VersionSuffix)$(CblMarinerExtension)</CblMariner2TargetPath>
</PropertyGroup>
<!-- Create layout: Create changelog -->
<PropertyGroup>
<ChangeLogProps>DATE=$([System.DateTime]::UtcNow.ToString(ddd MMM dd yyyy))</ChangeLogProps>
......@@ -51,10 +56,6 @@
<GenerateFileFromTemplate TemplateFile="$(MSBuildThisFileDirectory)changelog.in" OutputPath="$(GeneratedChangeLog)" Properties="$(ChangeLogProps)" />
<!-- Run fpm -->
<PropertyGroup>
<RpmArch Condition=" '$(TargetArchitecture)' == 'x64' ">amd64</RpmArch>
</PropertyGroup>
<ItemGroup>
<FpmArgs Include="--verbose" />
<FpmArgs Include="--input-type=dir" />
......@@ -79,12 +80,12 @@
<Exec Command="fpm @(FpmArgs,' ')" />
<Copy SourceFiles="$(TargetPath)"
DestinationFiles="$(CblMarinerTargetPath)"
DestinationFiles="$(CblMariner1TargetPath)"
OverwriteReadOnlyFiles="True"
SkipUnchangedFiles="False"
UseHardlinksIfPossible="False" />
<Message Text="$(TargetPath) -> $(CblMarinerTargetPath)" Importance="high" />
<Message Text="$(TargetPath) -> $(CblMariner1TargetPath)" Importance="high" />
<Copy SourceFiles="$(TargetPath)"
DestinationFiles="$(CblMariner2TargetPath)"
......
<!--
This project produces a generic RPM installer for Linux x64 platforms only.
This project produces a generic RPM installer for Linux x64/arm64 platforms only.
-->
<Project DefaultTargets="Build">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
......@@ -12,11 +12,9 @@
<Import Project="..\Rpm.Runtime.Common.targets" />
<PropertyGroup>
<TargetFileName>$(RuntimeInstallerBaseName)-$(SharedFxVersion)-x64.rpm</TargetFileName>
<CblMarinerTargetFileName>$(RuntimeInstallerBaseName)-$(SharedFxVersion)-cm.1-x64.rpm</CblMarinerTargetFileName>
<CblMariner2TargetFileName>$(RuntimeInstallerBaseName)-$(SharedFxVersion)-cm.2-x64.rpm</CblMariner2TargetFileName>
<TargetFileName>$(RuntimeInstallerBaseName)-$(SharedFxVersion)-$(RpmArch).rpm</TargetFileName>
<TargetPath>$(InstallersOutputPath)$(TargetFileName)</TargetPath>
<CblMarinerTargetPath>$(InstallersOutputPath)$(CblMarinerTargetFileName)</CblMarinerTargetPath>
<CblMariner2TargetPath>$(InstallersOutputPath)$(CblMariner2TargetFileName)</CblMariner2TargetPath>
<CblMarinerBaseName>$(RuntimeInstallerBaseName)-$(SharedFxVersion)</CblMarinerBaseName>
<CblMarinerExtension>-$(RpmArch).rpm</CblMarinerExtension>
</PropertyGroup>
</Project>
......@@ -29,13 +29,11 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.Common.targets" />
<PropertyGroup>
<TargetFileName>$(TargetingPackInstallerBaseName)-$(TargetingPackVersion).rpm</TargetFileName>
<CblMarinerTargetFileName>$(TargetingPackInstallerBaseName)-$(TargetingPackVersion)-cm.1.rpm</CblMarinerTargetFileName>
<CblMariner2TargetFileName>$(TargetingPackInstallerBaseName)-$(TargetingPackVersion)-cm.2.rpm</CblMariner2TargetFileName>
<TargetFileName>$(TargetingPackInstallerBaseName)-$(TargetingPackVersion)-$(RpmArch).rpm</TargetFileName>
<TargetPath>$(InstallersOutputPath)$(TargetFileName)</TargetPath>
<CblMarinerTargetPath>$(InstallersOutputPath)$(CblMarinerTargetFileName)</CblMarinerTargetPath>
<CblMariner2TargetPath>$(InstallersOutputPath)$(CblMariner2TargetFileName)</CblMariner2TargetPath>
<CblMarinerBaseName>$(TargetingPackInstallerBaseName)-$(TargetingPackVersion)</CblMarinerBaseName>
<CblMarinerExtension>-$(RpmArch).rpm</CblMarinerExtension>
<PackageVersion>$(TargetingPackVersionPrefix)</PackageVersion>
<!-- Set package revision to '1' for RTM releases, but include the build number in pre-releases -->
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册