Skip to content

Commit b49acd2

Browse files
Templatize Github release jobs per platform & Tar the .deb output (#90)
Co-authored-by: Jimmy Song <[email protected]> Cherry-picked from #89
1 parent c8c4051 commit b49acd2

File tree

5 files changed

+173
-92
lines changed

5 files changed

+173
-92
lines changed

azure-pipelines/build/linux/du/templates/dopapt-docker-steps.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ parameters:
1010
type: string
1111

1212
steps:
13-
- checkout: self
14-
1513
- task: Docker@2
1614
displayName: Login to ACR
1715
inputs:

azure-pipelines/build/linux/du/templates/dopapt-native-steps.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ parameters:
88
type: string
99

1010
steps:
11-
- checkout: self
12-
1311
- task: CmdLine@2
1412
inputs:
1513
script: 'python3 ./build.py --project sdk --cmaketarget deliveryoptimization --config ${{parameters.config}} --package-for DEB --clean'

azure-pipelines/publishing/github-release.yml

Lines changed: 18 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -38,91 +38,21 @@ stages:
3838
3939
- stage: release_build
4040
jobs:
41-
- job: deliveryoptimization_agent_ubuntu1804_amd64
42-
steps:
43-
- template: ../build/linux/du/templates/doclient-lite-native-steps.yml
44-
parameters:
45-
targetOsArch: 'ubuntu1804_x64'
46-
config: minsizerel
47-
skipTests: true
48-
- job: deliveryoptimization_agent_ubuntu1804_arm64
49-
steps:
50-
- template: ../build/linux/du/templates/doclient-lite-docker-steps.yml
51-
parameters:
52-
targetOsArch: ubuntu1804_arm64
53-
imageVersion: ${{variables.imageVersion}}
54-
config: minsizerel
55-
- job: deliveryoptimization_agent_debian10_arm32
56-
steps:
57-
- template: ../build/linux/du/templates/doclient-lite-docker-steps.yml
58-
parameters:
59-
targetOsArch: debian10_arm32
60-
imageVersion: ${{variables.imageVersion}}
61-
config: minsizerel
62-
- job: deliveryoptimization_agent_debian9_arm32
63-
steps:
64-
- template: ../build/linux/du/templates/doclient-lite-docker-steps.yml
65-
parameters:
66-
targetOsArch: debian9_arm32
67-
imageVersion: ${{variables.imageVersion}}
68-
config: minsizerel
69-
70-
- job: libdeliveryoptimization_ubuntu1804_amd64
71-
steps:
72-
- template: ../build/linux/du/templates/dosdkcpp-native-steps.yml
73-
parameters:
74-
targetOsArch: ubuntu1804_x64
75-
config: minsizerel
76-
skipTests: true
77-
- job: libdeliveryoptimization_ubuntu1804_arm64
78-
steps:
79-
- template: ../build/linux/du/templates/dosdkcpp-docker-steps.yml
80-
parameters:
81-
targetOsArch: ubuntu1804_arm64
82-
imageVersion: ${{variables.imageVersion}}
83-
config: minsizerel
84-
- job: libdeliveryoptimization_debian10_arm32
85-
steps:
86-
- template: ../build/linux/du/templates/dosdkcpp-docker-steps.yml
87-
parameters:
88-
targetOsArch: debian10_arm32
89-
imageVersion: ${{variables.imageVersion}}
90-
config: minsizerel
91-
- job: libdeliveryoptimization_debian9_arm32
92-
steps:
93-
- template: ../build/linux/du/templates/dosdkcpp-docker-steps.yml
94-
parameters:
95-
targetOsArch: debian9_arm32
96-
imageVersion: ${{variables.imageVersion}}
97-
config: minsizerel
98-
99-
- job: deliveryoptimization_plugin_apt_ubuntu1804_amd64
100-
steps:
101-
- template: ../build/linux/du/templates/dopapt-native-steps.yml
102-
parameters:
103-
targetOsArch: ubuntu1804_x64
104-
config: minsizerel
105-
- job: deliveryoptimization_plugin_apt_ubuntu1804_arm64
106-
steps:
107-
- template: ../build/linux/du/templates/dopapt-docker-steps.yml
108-
parameters:
109-
targetOsArch: ubuntu1804_arm64
110-
imageVersion: ${{variables.imageVersion}}
111-
config: minsizerel
112-
- job: deliveryoptimization_plugin_apt_debian10_arm32
113-
steps:
114-
- template: ../build/linux/du/templates/dopapt-docker-steps.yml
115-
parameters:
116-
targetOsArch: debian10_arm32
117-
imageVersion: ${{variables.imageVersion}}
118-
config: minsizerel
119-
- job: deliveryoptimization_plugin_apt_debian9_arm32
120-
steps:
121-
- template: ../build/linux/du/templates/dopapt-docker-steps.yml
122-
parameters:
123-
targetOsArch: debian9_arm32
124-
imageVersion: ${{variables.imageVersion}}
125-
config: minsizerel
41+
- template: templates/release-native-build-steps.yml
42+
parameters:
43+
targetOsArch: 'ubuntu1804_x64'
44+
- template: templates/release-docker-build-steps.yml
45+
parameters:
46+
targetOsArch: 'ubuntu1804_arm64'
47+
imageVersion: ${{variables.imageVersion}}
48+
- template: templates/release-docker-build-steps.yml
49+
parameters:
50+
targetOsArch: 'debian9_arm32'
51+
imageVersion: ${{variables.imageVersion}}
52+
- template: templates/release-docker-build-steps.yml
53+
parameters:
54+
targetOsArch: 'debian10_arm32'
55+
imageVersion: ${{variables.imageVersion}}
12656

12757
- stage: release
12858
condition: succeeded()
@@ -140,7 +70,7 @@ stages:
14070
script: |
14171
echo "Directory to be published: $(Build.ArtifactStagingDirectory)"
14272
echo Content to be published:
143-
ls -lR $(Build.ArtifactStagingDirectory)
73+
ls -lR $(Build.ArtifactStagingDirectory)/**/*.tar
14474
displayName: Release Information
14575

14676
- task: GitHubRelease@1
@@ -149,11 +79,11 @@ stages:
14979
gitHubConnection: 'client2'
15080
repositoryName: 'microsoft/do-client'
15181
action: 'create'
152-
assets: '$(Build.ArtifactStagingDirectory)/**/*-minsizerel/*.deb'
82+
assets: '$(Build.ArtifactStagingDirectory)/**/*.tar'
15383
tagSource: 'userSpecifiedTag'
15484
tag: '$(Release.Version)'
15585
title: '$(Release.Title)'
15686
isPreRelease: true
15787
changeLogCompareToRelease: 'lastNonDraftReleaseByTag'
15888
changeLogCompareToReleaseTag: '$(Release.PreviousVersion)'
159-
changeLogType: 'commitBased'
89+
changeLogType: 'commitBased'
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Template: Steps to build all components for a specific OS
2+
# Consume this steps template in one or more jobs by passing in parameter values.
3+
4+
parameters:
5+
- name: targetOsArch # example: debian9_arm32
6+
type: string
7+
- name: imageVersion
8+
type: string
9+
10+
11+
jobs:
12+
- job: ${{parameters.targetOsArch}}
13+
steps:
14+
- checkout: self
15+
path: 's' # Copy to sources directory (templates do not do this automatically)
16+
17+
- template: ../../build/linux/du/templates/doclient-lite-docker-steps.yml
18+
parameters:
19+
targetOsArch: ${{parameters.targetOsArch}}
20+
imageVersion: ${{parameters.imageVersion}}
21+
config: minsizerel
22+
23+
- task: CopyFiles@2
24+
inputs:
25+
SourceFolder: '/tmp/build-deliveryoptimization-agent-${{parameters.targetOsArch}}/linux-minsizerel'
26+
Contents: |
27+
*.deb
28+
TargetFolder: '/tmp/${{parameters.targetOsArch}}'
29+
CleanTargetFolder: true
30+
displayName: 'Copy agent .deb file'
31+
32+
- template: ../../build/linux/du/templates/dosdkcpp-docker-steps.yml
33+
parameters:
34+
targetOsArch: ${{parameters.targetOsArch}}
35+
imageVersion: ${{parameters.imageVersion}}
36+
config: minsizerel
37+
38+
- task: CopyFiles@2
39+
inputs:
40+
SourceFolder: '/tmp/build-deliveryoptimization-sdk-${{parameters.targetOsArch}}/linux-minsizerel'
41+
Contents: |
42+
*.deb
43+
TargetFolder: '/tmp/${{parameters.targetOsArch}}'
44+
CleanTargetFolder: false
45+
displayName: 'Copy sdk .deb files'
46+
47+
- template: ../../build/linux/du/templates/dopapt-docker-steps.yml
48+
parameters:
49+
targetOsArch: ${{parameters.targetOsArch}}
50+
imageVersion: ${{parameters.imageVersion}}
51+
config: minsizerel
52+
53+
- task: CopyFiles@2
54+
inputs:
55+
SourceFolder: '/tmp/build-deliveryoptimization-plugin-apt-${{parameters.targetOsArch}}/linux-minsizerel'
56+
Contents: |
57+
*.deb
58+
TargetFolder: '/tmp/${{parameters.targetOsArch}}'
59+
CleanTargetFolder: false
60+
displayName: 'Copy plugin .deb file'
61+
62+
- task: DeleteFiles@1
63+
inputs:
64+
SourceFolder: $(Build.ArtifactStagingDirectory)
65+
Contents: |
66+
**/*
67+
displayName: 'Clean build folder before creating tar file folder'
68+
69+
- task: ArchiveFiles@2
70+
inputs:
71+
rootFolderOrFile: /tmp/${{parameters.targetOsArch}}
72+
includeRootFolder: False
73+
archiveType: tar
74+
archiveFile: $(build.ArtifactStagingDirectory)/${{parameters.targetOsArch}}-packages.tar
75+
displayName: 'Create .tar file'
76+
77+
- task: PublishBuildArtifacts@1
78+
inputs:
79+
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
80+
ArtifactName: 'github-release-artifacts'
81+
publishLocation: 'Container'
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
parameters:
2+
- name: targetOsArch # example: debian9_arm32
3+
type: string
4+
5+
jobs:
6+
- job: ${{parameters.targetOsArch}}
7+
steps:
8+
- checkout: self
9+
path: 's' # Copy to sources directory (templates do not do this automatically)
10+
11+
- template: ../../build/linux/du/templates/doclient-lite-native-steps.yml
12+
parameters:
13+
targetOsArch: ${{parameters.targetOsArch}}
14+
config: minsizerel
15+
skiptests: true
16+
17+
- task: CopyFiles@2
18+
inputs:
19+
SourceFolder: '/tmp/build-deliveryoptimization-agent/linux-minsizerel'
20+
Contents: |
21+
*.deb
22+
TargetFolder: '/tmp/${{parameters.targetOsArch}}'
23+
CleanTargetFolder: true
24+
displayName: 'Copy agent .deb file'
25+
26+
- template: ../../build/linux/du/templates/dosdkcpp-native-steps.yml
27+
parameters:
28+
targetOsArch: ${{parameters.targetOsArch}}
29+
config: minsizerel
30+
skiptests: true
31+
32+
- task: CopyFiles@2
33+
inputs:
34+
SourceFolder: '/tmp/build-deliveryoptimization-sdk/linux-minsizerel'
35+
Contents: |
36+
*.deb
37+
TargetFolder: '/tmp/${{parameters.targetOsArch}}'
38+
CleanTargetFolder: false
39+
displayName: 'Copy sdk .deb files'
40+
41+
- template: ../../build/linux/du/templates/dopapt-native-steps.yml
42+
parameters:
43+
targetOsArch: ${{parameters.targetOsArch}}
44+
config: minsizerel
45+
46+
- task: CopyFiles@2
47+
inputs:
48+
SourceFolder: '/tmp/build-deliveryoptimization-plugin-apt/linux-minsizerel'
49+
Contents: |
50+
*.deb
51+
TargetFolder: '/tmp/${{parameters.targetOsArch}}'
52+
CleanTargetFolder: false
53+
displayName: 'Copy plugin .deb file'
54+
55+
- task: DeleteFiles@1
56+
inputs:
57+
SourceFolder: $(Build.ArtifactStagingDirectory)
58+
Contents: |
59+
**/*
60+
displayName: 'Clean build folder before creating tar file folder'
61+
62+
- task: ArchiveFiles@2
63+
inputs:
64+
rootFolderOrFile: /tmp/${{parameters.targetOsArch}}
65+
includeRootFolder: False
66+
archiveType: tar
67+
archiveFile: $(build.ArtifactStagingDirectory)/${{parameters.targetOsArch}}-packages.tar
68+
displayName: 'Create .tar file'
69+
70+
- task: PublishBuildArtifacts@1
71+
inputs:
72+
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
73+
ArtifactName: 'github-release-artifacts'
74+
publishLocation: 'Container'

0 commit comments

Comments
 (0)