mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Add mariner arm64 package build to release build (#19946)
This commit is contained in:
@@ -655,7 +655,6 @@ function Start-PSPackage {
|
||||
}
|
||||
foreach ($Distro in $Script:RedhatFddDistributions) {
|
||||
$Arguments["Distribution"] = $Distro
|
||||
$Arguments["HostArchitecture"] = $HostArchitecture
|
||||
if ($PSCmdlet.ShouldProcess("Create RPM Package for $Distro")) {
|
||||
Write-Verbose -Verbose "Creating RPM Package for $Distro"
|
||||
New-UnixPackage @Arguments
|
||||
@@ -4330,6 +4329,7 @@ ${minSizeLinuxBuildFolder} = 'pwshLinuxBuildMinSize'
|
||||
${arm32LinuxBuildFolder} = 'pwshLinuxBuildArm32'
|
||||
${arm64LinuxBuildFolder} = 'pwshLinuxBuildArm64'
|
||||
${amd64MarinerBuildFolder} = 'pwshMarinerBuildAmd64'
|
||||
${arm64MarinerBuildFolder} = 'pwshMarinerBuildArm64'
|
||||
|
||||
<#
|
||||
Used in Azure DevOps Yaml to package all the linux packages for a channel.
|
||||
@@ -4409,6 +4409,8 @@ function Invoke-AzDevOpsLinuxPackageCreation {
|
||||
Set-LinuxFilePermission -FilePath $filePermissionFile -RootPath "${env:SYSTEM_ARTIFACTSDIRECTORY}\${arm64LinuxBuildFolder}"
|
||||
Start-PSPackage -Type tar-arm64 @releaseTagParam -LTS:$LTS
|
||||
} elseif ($BuildType -eq 'rpm') {
|
||||
# Generate mariner amd64 package
|
||||
Write-Verbose -Verbose "Generating mariner amd64 package"
|
||||
Restore-PSOptions -PSOptionsPath "${env:SYSTEM_ARTIFACTSDIRECTORY}\${amd64MarinerBuildFolder}-meta\psoptions.json"
|
||||
$filePermissionFile = "${env:SYSTEM_ARTIFACTSDIRECTORY}\${amd64MarinerBuildFolder}-meta\linuxFilePermission.json"
|
||||
Set-LinuxFilePermission -FilePath $filePermissionFile -RootPath "${env:SYSTEM_ARTIFACTSDIRECTORY}\${amd64MarinerBuildFolder}"
|
||||
@@ -4418,6 +4420,18 @@ function Invoke-AzDevOpsLinuxPackageCreation {
|
||||
Write-Verbose -Verbose "options.Top $($options.Top)"
|
||||
|
||||
Start-PSPackage -Type rpm-fxdependent @releaseTagParam -LTS:$LTS
|
||||
|
||||
# Generate mariner arm64 package
|
||||
Write-Verbose -Verbose "Generating mariner arm64 package"
|
||||
Restore-PSOptions -PSOptionsPath "${env:SYSTEM_ARTIFACTSDIRECTORY}\${arm64MarinerBuildFolder}-meta\psoptions.json"
|
||||
$filePermissionFile = "${env:SYSTEM_ARTIFACTSDIRECTORY}\${arm64MarinerBuildFolder}-meta\linuxFilePermission.json"
|
||||
Set-LinuxFilePermission -FilePath $filePermissionFile -RootPath "${env:SYSTEM_ARTIFACTSDIRECTORY}\${arm64MarinerBuildFolder}"
|
||||
|
||||
Write-Verbose -Verbose "---- rpm-fxdependent-arm64 ----"
|
||||
Write-Verbose -Verbose "options.Output: $($options.Output)"
|
||||
Write-Verbose -Verbose "options.Top $($options.Top)"
|
||||
|
||||
Start-PSPackage -Type rpm-fxdependent-arm64 @releaseTagParam -LTS:$LTS
|
||||
}
|
||||
}
|
||||
catch {
|
||||
@@ -4502,14 +4516,14 @@ function Invoke-AzDevOpsLinuxPackageBuild {
|
||||
Remove-Item "${buildFolder}\*.pdb" -Force
|
||||
Get-ChildItem -Path $buildFolder -Recurse -File | Export-LinuxFilePermission -FilePath "${buildFolder}-meta/linuxFilePermission.json" -RootPath ${buildFolder} -Force
|
||||
} elseif ($BuildType -eq 'rpm') {
|
||||
## Build for Mariner
|
||||
## Build for Mariner amd64
|
||||
$options = Get-PSOptions
|
||||
Write-Verbose -Verbose "---- Mariner ----"
|
||||
Write-Verbose -Verbose "---- Mariner x64 ----"
|
||||
Write-Verbose -Verbose "options.Output: $($options.Output)"
|
||||
Write-Verbose -Verbose "options.Top $($options.Top)"
|
||||
$binDir = Join-Path -Path $options.Top -ChildPath 'bin'
|
||||
if (Test-Path -Path $binDir) {
|
||||
Write-Verbose -Verbose "Remove $binDir, to get a clean build for Mariner package"
|
||||
Write-Verbose -Verbose "Remove $binDir, to get a clean build for Mariner x64 package"
|
||||
Remove-Item -Path $binDir -Recurse -Force
|
||||
}
|
||||
|
||||
@@ -4519,6 +4533,24 @@ function Invoke-AzDevOpsLinuxPackageBuild {
|
||||
# Remove symbol files, xml document files.
|
||||
Remove-Item "${buildFolder}\*.pdb", "${buildFolder}\*.xml" -Force
|
||||
Get-ChildItem -Path $buildFolder -Recurse -File | Export-LinuxFilePermission -FilePath "${buildFolder}-meta/linuxFilePermission.json" -RootPath ${buildFolder} -Force
|
||||
|
||||
## Build for Mariner arm64
|
||||
$options = Get-PSOptions
|
||||
Write-Verbose -Verbose "---- Mariner arm64 ----"
|
||||
Write-Verbose -Verbose "options.Output: $($options.Output)"
|
||||
Write-Verbose -Verbose "options.Top $($options.Top)"
|
||||
$binDir = Join-Path -Path $options.Top -ChildPath 'bin'
|
||||
if (Test-Path -Path $binDir) {
|
||||
Write-Verbose -Verbose "Remove $binDir, to get a clean build for Mariner arm64 package"
|
||||
Remove-Item -Path $binDir -Recurse -Force
|
||||
}
|
||||
|
||||
$buildParams['Runtime'] = 'fxdependent-linux-arm64'
|
||||
$buildFolder = "${env:SYSTEM_ARTIFACTSDIRECTORY}/${arm64MarinerBuildFolder}"
|
||||
Start-PSBuild -Clean @buildParams @releaseTagParam -Output $buildFolder -PSOptionsPath "${buildFolder}-meta/psoptions.json"
|
||||
# Remove symbol files, xml document files.
|
||||
Remove-Item "${buildFolder}\*.pdb", "${buildFolder}\*.xml" -Force
|
||||
Get-ChildItem -Path $buildFolder -Recurse -File | Export-LinuxFilePermission -FilePath "${buildFolder}-meta/linuxFilePermission.json" -RootPath ${buildFolder} -Force
|
||||
}
|
||||
}
|
||||
catch {
|
||||
|
||||
@@ -194,6 +194,12 @@ stages:
|
||||
unsignedBuildArtifactName: pwshMarinerBuildAmd64.tar.gz
|
||||
signedBuildArtifactName: pwshMarinerBuildAmd64.tar.gz
|
||||
signedArtifactContainer: authenticode-signed
|
||||
linux-arm64-mariner:
|
||||
runtime: linux-arm64-mariner
|
||||
unsignedBuildArtifactContainer: pwshMarinerBuildArm64.tar.gz
|
||||
unsignedBuildArtifactName: pwshMarinerBuildArm64.tar.gz
|
||||
signedBuildArtifactName: pwshMarinerBuildArm64.tar.gz
|
||||
signedArtifactContainer: authenticode-signed
|
||||
linux-minsize:
|
||||
runtime: linux-minsize
|
||||
unsignedBuildArtifactContainer: pwshLinuxBuildMinSize.tar.gz
|
||||
|
||||
@@ -48,6 +48,12 @@ jobs:
|
||||
path: $(Build.ArtifactStagingDirectory)/linuxTars
|
||||
displayName: Download mariner build
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: pwshMarinerBuildArm64.tar.gz
|
||||
path: $(Build.ArtifactStagingDirectory)/linuxTars
|
||||
displayName: Download mariner arm64 build
|
||||
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: pwshLinuxBuildAlpine.tar.gz
|
||||
@@ -87,6 +93,10 @@ jobs:
|
||||
New-Item -Path $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64 -ItemType Directory
|
||||
tar -xf $(Build.ArtifactStagingDirectory)/linuxTars/pwshMarinerBuildAmd64.tar.gz -C $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64
|
||||
|
||||
Write-Verbose -Verbose -Message "Expanding $(Build.ArtifactStagingDirectory)/linuxTars/pwshMarinerBuildArm64.tar.gz to $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64"
|
||||
New-Item -Path $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64 -ItemType Directory
|
||||
tar -xf $(Build.ArtifactStagingDirectory)/linuxTars/pwshMarinerBuildArm64.tar.gz -C $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64
|
||||
|
||||
Write-Verbose -Verbose -Message "Expanding $(Build.ArtifactStagingDirectory)/linuxTars/pwshLinuxBuildAlpine.tar.gz/pwshLinuxBuild.tar.gz to $(Build.ArtifactStagingDirectory)/pwshLinuxBuildAlpine"
|
||||
New-Item -Path $(Build.ArtifactStagingDirectory)/pwshLinuxBuildAlpine -ItemType Directory
|
||||
tar -xf $(Build.ArtifactStagingDirectory)/linuxTars/pwshLinuxBuildAlpine.tar.gz/pwshLinuxBuild.tar.gz -C $(Build.ArtifactStagingDirectory)/pwshLinuxBuildAlpine
|
||||
@@ -141,7 +151,12 @@ jobs:
|
||||
- template: signBuildFiles.yml
|
||||
parameters:
|
||||
binLocation: pwshMarinerBuildAmd64
|
||||
buildPrefixName: 'PowerShell Linux x64 Framework Dependent'
|
||||
buildPrefixName: 'PowerShell Linux x64 (Mariner) Framework Dependent'
|
||||
|
||||
- template: signBuildFiles.yml
|
||||
parameters:
|
||||
binLocation: pwshMarinerBuildArm64
|
||||
buildPrefixName: 'PowerShell Linux arm64 (Mariner) Framework Dependent'
|
||||
|
||||
- template: signBuildFiles.yml
|
||||
parameters:
|
||||
|
||||
@@ -59,7 +59,15 @@ jobs:
|
||||
artifact: authenticode-signed
|
||||
path: $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64-signed
|
||||
pattern: '**/pwshMarinerBuildAmd64.tar.gz'
|
||||
displayName: Download mariner build
|
||||
displayName: Download mariner amd64 build
|
||||
|
||||
- ${{ if eq(variables.build,'rpm') }} :
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: authenticode-signed
|
||||
path: $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64-signed
|
||||
pattern: '**/pwshMarinerBuildArm64.tar.gz'
|
||||
displayName: Download mariner arm64 build
|
||||
|
||||
- ${{ if eq(variables.build,'alpine') }} :
|
||||
- task: DownloadPipelineArtifact@2
|
||||
@@ -110,7 +118,14 @@ jobs:
|
||||
inputs:
|
||||
artifact: pwshMarinerBuildAmd64-meta
|
||||
path: $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64-meta
|
||||
displayName: Download mariner build meta
|
||||
displayName: Download mariner x64 build meta
|
||||
|
||||
- ${{ if eq(variables.build,'rpm') }} :
|
||||
- task: DownloadPipelineArtifact@2
|
||||
inputs:
|
||||
artifact: pwshMarinerBuildArm64-meta
|
||||
path: $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64-meta
|
||||
displayName: Download mariner arm64 build meta
|
||||
|
||||
- ${{ if eq(variables.build,'alpine') }} :
|
||||
- task: DownloadPipelineArtifact@2
|
||||
@@ -152,9 +167,15 @@ jobs:
|
||||
}
|
||||
|
||||
if ('$(build)' -eq 'rpm') {
|
||||
# for mariner x64
|
||||
Write-Verbose -Verbose "Expanding $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64-signed/pwshMarinerBuildAmd64.tar.gz to $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64"
|
||||
New-Item -Path $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64 -ItemType Directory
|
||||
tar -xf $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64-signed/pwshMarinerBuildAmd64.tar.gz -C $(Build.ArtifactStagingDirectory)/pwshMarinerBuildAmd64
|
||||
|
||||
# for mariner arm64
|
||||
Write-Verbose -Verbose "Expanding $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64-signed/pwshMarinerBuildArm64.tar.gz to $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64"
|
||||
New-Item -Path $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64 -ItemType Directory
|
||||
tar -xf $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64-signed/pwshMarinerBuildArm64.tar.gz -C $(Build.ArtifactStagingDirectory)/pwshMarinerBuildArm64
|
||||
}
|
||||
|
||||
if ('$(build)' -eq 'alpine') {
|
||||
|
||||
@@ -97,7 +97,17 @@ jobs:
|
||||
parameters:
|
||||
BuildDropPath: '$(System.ArtifactsDirectory)/pwshMarinerBuildAmd64'
|
||||
Build_Repository_Uri: $(Github_Build_Repository_Uri)
|
||||
displayName: Mariner SBOM
|
||||
displayName: Mariner x64 SBOM
|
||||
PackageName: PowerShell Linux Framework Dependent
|
||||
PackageVersion: $(Version)
|
||||
sourceScanPath: '$(PowerShellRoot)/tools'
|
||||
|
||||
- ${{ if eq(variables.build,'rpm') }} :
|
||||
- template: Sbom.yml@ComplianceRepo
|
||||
parameters:
|
||||
BuildDropPath: '$(System.ArtifactsDirectory)/pwshMarinerBuildArm64'
|
||||
Build_Repository_Uri: $(Github_Build_Repository_Uri)
|
||||
displayName: Mariner arm64 SBOM
|
||||
PackageName: PowerShell Linux Framework Dependent
|
||||
PackageVersion: $(Version)
|
||||
sourceScanPath: '$(PowerShellRoot)/tools'
|
||||
@@ -155,6 +165,12 @@ jobs:
|
||||
tar -czvf $(System.ArtifactsDirectory)/pwshMarinerBuildAmd64.tar.gz *
|
||||
displayName: Compress pwshMarinerBuildAmd64
|
||||
|
||||
- ${{ if eq(variables.build,'rpm') }} :
|
||||
- pwsh: |
|
||||
Set-Location '$(System.ArtifactsDirectory)/pwshMarinerBuildArm64'
|
||||
tar -czvf $(System.ArtifactsDirectory)/pwshMarinerBuildArm64.tar.gz *
|
||||
displayName: Compress pwshMarinerBuildArm64
|
||||
|
||||
- ${{ if eq(variables.build,'deb') }} :
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
@@ -225,6 +241,20 @@ jobs:
|
||||
artifactName: pwshMarinerBuildAmd64-meta
|
||||
retryCountOnTaskFailure: 2
|
||||
|
||||
- ${{ if eq(variables.build,'rpm') }} :
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
path: '$(System.ArtifactsDirectory)/pwshMarinerBuildArm64.tar.gz'
|
||||
artifactName: pwshMarinerBuildArm64.tar.gz
|
||||
retryCountOnTaskFailure: 2
|
||||
|
||||
- ${{ if eq(variables.build,'rpm') }} :
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
path: '$(System.ArtifactsDirectory)/pwshMarinerBuildArm64-meta'
|
||||
artifactName: pwshMarinerBuildArm64-meta
|
||||
retryCountOnTaskFailure: 2
|
||||
|
||||
- ${{ if eq(variables.build,'alpine') }} :
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
|
||||
@@ -31,7 +31,7 @@ steps:
|
||||
- pwsh: |
|
||||
$message = @()
|
||||
Get-ChildItem $(System.ArtifactsDirectory)\* -recurse -filter *.rpm | ForEach-Object {
|
||||
if($_.Name -notmatch 'powershell\-(preview-|lts-)?\d+\.\d+\.\d+(_[a-z]*\.\d+)?-1.(rh|cm).x86_64\.rpm')
|
||||
if($_.Name -notmatch 'powershell\-(preview-|lts-)?\d+\.\d+\.\d+(_[a-z]*\.\d+)?-1.(rh|cm).(x86_64|aarch64)\.rpm')
|
||||
{
|
||||
$messageInstance = "$($_.Name) is not a valid package name"
|
||||
$message += $messageInstance
|
||||
|
||||
Reference in New Issue
Block a user