Skip to content

Commit 296838c

Browse files
committed
.azure-pipelines/release.yml: add Linux builds
Add Linux release build definitions on Azure Pipelines. Signed-off-by: Matthew John Cheetham <[email protected]>
1 parent 620c3bf commit 296838c

File tree

1 file changed

+109
-0
lines changed

1 file changed

+109
-0
lines changed

.azure-pipelines/release.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ parameters:
4646
image: macOS-latest
4747
os: macos
4848

49+
- name: linux_matrix
50+
type: object
51+
default:
52+
- id: linux_x64
53+
jobName: 'Linux (x64)'
54+
runtime: linux-x64
55+
pool: GitClientPME-1ESHostedPool-intel-pc
56+
image: ubuntu-x86_64-ado1es
57+
os: linux
58+
4959
variables:
5060
- name: 'esrpAppConnectionName'
5161
value: '1ESGitClient-ESRP-App'
@@ -490,3 +500,102 @@ extends:
490500
cp $(Build.ArtifactStagingDirectory)/installers/*.tar.gz $(Build.ArtifactStagingDirectory)/_final
491501
cp $(Build.ArtifactStagingDirectory)/symbols/*.tar.gz $(Build.ArtifactStagingDirectory)/_final
492502
cp -r $(Build.ArtifactStagingDirectory)/payload $(Build.ArtifactStagingDirectory)/_final
503+
504+
#
505+
# Linux build jobs
506+
#
507+
- ${{ each dim in parameters.linux_matrix }}:
508+
- job: ${{ dim.id }}
509+
displayName: ${{ dim.jobName }}
510+
pool:
511+
name: ${{ dim.pool }}
512+
image: ${{ dim.image }}
513+
os: ${{ dim.os }}
514+
templateContext:
515+
outputs:
516+
- output: pipelineArtifact
517+
targetPath: '$(Build.ArtifactStagingDirectory)/_final'
518+
artifactName: '${{ dim.runtime }}'
519+
steps:
520+
- checkout: self
521+
- task: Bash@3
522+
displayName: 'Read version file'
523+
inputs:
524+
targetType: inline
525+
script: |
526+
echo "##vso[task.setvariable variable=version;isReadOnly=true]$(cat ./VERSION | sed -E 's/.[0-9]+$//')"
527+
- task: UseDotNet@2
528+
displayName: 'Use .NET 8 SDK'
529+
inputs:
530+
packageType: sdk
531+
version: '8.x'
532+
- task: Bash@3
533+
displayName: 'Build payload'
534+
inputs:
535+
targetType: filePath
536+
filePath: './src/linux/Packaging.Linux/layout.sh'
537+
arguments: |
538+
--runtime="${{ dim.runtime }}" \
539+
--configuration="Release" \
540+
--output="$(Build.ArtifactStagingDirectory)/payload" \
541+
--symbol-output="$(Build.ArtifactStagingDirectory)/symbols_raw"
542+
- task: Bash@3
543+
displayName: 'Build packages'
544+
inputs:
545+
targetType: filePath
546+
filePath: './src/linux/Packaging.Linux/pack.sh'
547+
arguments: |
548+
--version="$(version)" \
549+
--runtime="${{ dim.runtime }}" \
550+
--payload="$(Build.ArtifactStagingDirectory)/payload" \
551+
--symbols="$(Build.ArtifactStagingDirectory)/symbols_raw" \
552+
--output="$(Build.ArtifactStagingDirectory)/pkg"
553+
- task: Bash@3
554+
displayName: 'Move packages'
555+
inputs:
556+
targetType: inline
557+
script: |
558+
# Move symbols
559+
mkdir -p $(Build.ArtifactStagingDirectory)/symbols
560+
mv $(Build.ArtifactStagingDirectory)/pkg/tar/gcm-*-symbols.tar.gz $(Build.ArtifactStagingDirectory)/symbols
561+
562+
# Move binary packages
563+
mkdir -p $(Build.ArtifactStagingDirectory)/installers
564+
mv $(Build.ArtifactStagingDirectory)/pkg/tar/*.tar.gz $(Build.ArtifactStagingDirectory)/installers
565+
mv $(Build.ArtifactStagingDirectory)/pkg/deb/*.deb $(Build.ArtifactStagingDirectory)/installers
566+
- task: EsrpCodeSigning@5
567+
condition: and(succeeded(), eq('${{ parameters.esrp }}', true))
568+
displayName: 'Sign Debian package'
569+
inputs:
570+
connectedServiceName: '$(esrpAppConnectionName)'
571+
useMSIAuthentication: true
572+
appRegistrationClientId: '$(esrpClientId)'
573+
appRegistrationTenantId: '$(esrpTenantId)'
574+
authAkvName: '$(esrpKeyVaultName)'
575+
authSignCertName: '$(esrpSignReqCertName)'
576+
serviceEndpointUrl: '$(esrpEndpointUrl)'
577+
folderPath: '$(Build.ArtifactStagingDirectory)/installers'
578+
pattern: |
579+
**/*.deb
580+
useMinimatch: true
581+
signConfigType: inlineSignParams
582+
inlineOperation: |
583+
[
584+
{
585+
"KeyCode": "CP-453387-Pgp",
586+
"OperationCode": "LinuxSign",
587+
"ToolName": "sign",
588+
"ToolVersion": "1.0",
589+
"Parameters": {}
590+
}
591+
]
592+
- task: Bash@3
593+
displayName: 'Collect artifacts for publishing'
594+
inputs:
595+
targetType: inline
596+
script: |
597+
mkdir -p $(Build.ArtifactStagingDirectory)/_final
598+
cp $(Build.ArtifactStagingDirectory)/installers/*.deb $(Build.ArtifactStagingDirectory)/_final
599+
cp $(Build.ArtifactStagingDirectory)/installers/*.tar.gz $(Build.ArtifactStagingDirectory)/_final
600+
cp $(Build.ArtifactStagingDirectory)/symbols/*.tar.gz $(Build.ArtifactStagingDirectory)/_final
601+
cp -r $(Build.ArtifactStagingDirectory)/payload $(Build.ArtifactStagingDirectory)/_final

0 commit comments

Comments
 (0)