Skip to content

Commit 73247d4

Browse files
committed
.azure-pipelines/release.yml: add Linux builds
Add Linux release build definitions on Azure Pipelines. Signed-off-by: Matthew John Cheetham <mjcheetham@outlook.com>
1 parent 07ffc10 commit 73247d4

1 file changed

Lines changed: 94 additions & 0 deletions

File tree

.azure-pipelines/release.yml

Lines changed: 94 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: GitClient-1ESHostedPool-intel-pc
56+
image: ubuntu-x86_64-ado1es
57+
os: linux
58+
4959
variables:
5060
- name: 'esrpConnectionName'
5161
value: '1ESGitClient-ESRP'
@@ -354,3 +364,87 @@ extends:
354364
# }
355365
# }
356366
# ]
367+
368+
#
369+
# Linux build jobs
370+
#
371+
- ${{ each dim in parameters.linux_matrix }}:
372+
- job: ${{ dim.id }}
373+
displayName: ${{ dim.jobName }}
374+
pool:
375+
name: ${{ dim.pool }}
376+
image: ${{ dim.image }}
377+
os: ${{ dim.os }}
378+
variables:
379+
version: $[stageDependencies.prebuild.vars.outputs['version.value']]
380+
templateContext:
381+
outputs:
382+
- output: pipelineArtifact
383+
targetPath: '$(Build.ArtifactStagingDirectory)/payload'
384+
artifactName: '${{ dim.runtime }}_payload'
385+
- output: pipelineArtifact
386+
targetPath: '$(Build.ArtifactStagingDirectory)/symbols'
387+
artifactName: '${{ dim.runtime }}_symbols'
388+
- output: pipelineArtifact
389+
targetPath: '$(Build.ArtifactStagingDirectory)/installers'
390+
artifactName: '${{ dim.runtime }}_installers'
391+
steps:
392+
- checkout: self
393+
- task: UseDotNet@2
394+
displayName: 'Use .NET 8 SDK'
395+
inputs:
396+
packageType: sdk
397+
version: '8.x'
398+
- task: Bash@3
399+
displayName: 'Build payload'
400+
inputs:
401+
targetType: filePath
402+
filePath: './src/linux/Packaging.Linux/layout.sh'
403+
arguments: |
404+
--runtime="${{ dim.runtime }}" \
405+
--configuration="Release" \
406+
--output="$(Build.ArtifactStagingDirectory)/payload" \
407+
--symbol-output="$(Build.ArtifactStagingDirectory)/symbols"
408+
- task: Bash@3
409+
displayName: 'Build packages'
410+
inputs:
411+
targetType: filePath
412+
filePath: './src/linux/Packaging.Linux/pack.sh'
413+
arguments: |
414+
--version="$(version)" \
415+
--runtime="${{ dim.runtime }}" \
416+
--payload="$(Build.ArtifactStagingDirectory)/payload" \
417+
--symbols="$(Build.ArtifactStagingDirectory)/symbols" \
418+
--output="$(Build.ArtifactStagingDirectory)/pkg"
419+
- task: CopyFiles@2
420+
displayName: 'Collect packages for publishing'
421+
inputs:
422+
contents: |
423+
**/*.deb
424+
**/*.tar.gz
425+
sourceFolder: '$(Build.ArtifactStagingDirectory)/pkg'
426+
targetFolder: '$(Build.ArtifactStagingDirectory)/installers'
427+
# - task: EsrpCodeSigning@5
428+
# condition: and(succeeded(), eq('${{ parameters.esrp }}', true))
429+
# displayName: 'Sign packages'
430+
# inputs:
431+
# connectedServiceName: '$(esrpConnectionName)'
432+
# appRegistrationClientId: '$(esrpClientId)'
433+
# appRegistrationTenantId: '$(esrpTenantId)'
434+
# authAkvName: '$(esrpAuthAkvName)'
435+
# authCertName: '$(esrpAuthCertName)'
436+
# authSignCertName: '$(esrpAuthSignCertName)'
437+
# serviceEndpointUrl: '$(esrpEndpointUrl)'
438+
# folderPath: '$(Build.ArtifactStagingDirectory)/installers'
439+
# pattern: '**/*'
440+
# signConfigType: inlineSignParams
441+
# inlineOperation: |
442+
# [
443+
# {
444+
# "KeyCode": "CP-453387-Pgp",
445+
# "OperationCode": "LinuxSign",
446+
# "ToolName": "sign",
447+
# "ToolVersion": "1.0",
448+
# "Parameters": {}
449+
# }
450+
# ]

0 commit comments

Comments
 (0)