-
Notifications
You must be signed in to change notification settings - Fork 4.7k
/
xplat-pipeline-job.yml
160 lines (126 loc) · 6.02 KB
/
xplat-pipeline-job.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
parameters:
buildConfig: ''
archType: ''
osGroup: ''
osSubgroup: ''
name: ''
helixType: '(unspecified)'
container: ''
testGroup: ''
crossBuild: false
crossrootfsDir: ''
liveLibrariesBuildConfig: ''
stagedBuild: false
strategy: ''
pool: ''
# arcade-specific parameters
condition: true
continueOnError: false
dependsOn: ''
dependOnEvaluatePaths: false
displayName: ''
timeoutInMinutes: ''
enableMicrobuild: ''
gatherAssetManifests: false
variables: {} ## any extra variables to add to the defaults defined below
jobs:
- template: /eng/pipelines/common/templates/runtimes/xplat-job.yml
parameters:
buildConfig: ${{ parameters.buildConfig }}
archType: ${{ parameters.archType }}
osGroup: ${{ parameters.osGroup }}
osSubgroup: ${{ parameters.osSubgroup }}
name: ${{ parameters.name }}
helixType: ${{ parameters.helixType }}
container: ${{ parameters.container }}
crossBuild: ${{ parameters.crossBuild }}
crossrootfsDir: ${{ parameters.crossrootfsDir }}
stagedBuild: ${{ parameters.stagedBuild }}
strategy: ${{ parameters.strategy }}
pool: ${{ parameters.pool }}
pgoType: ${{ parameters.pgoType }}
# arcade-specific parameters
condition: and(succeeded(), ${{ parameters.condition }})
continueOnError: ${{ parameters.continueOnError }}
dependsOn: ${{ parameters.dependsOn }}
dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }}
displayName: ${{ parameters.displayName }}
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
enableMicrobuild: ${{ parameters.enableMicrobuild }}
gatherAssetManifests: ${{ parameters.gatherAssetManifests }}
variables:
- ${{ if ne(parameters.testGroup, '') }}:
- name: testArtifactRootName
value: ${{ parameters.Group }}${{ parameters.Subgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}_${{ parameters.testGroup }}
- ${{ if eq(parameters.testGroup, '') }}:
- name: testArtifactRootName
value: ${{ parameters.Group }}${{ parameters.Subgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }}
- name: binTestsPath
value: '$(Build.SourcesDirectory)/artifacts/tests/coreclr'
# Build product defines what we are trying to build, either coreclr or mono
- name: buildProductArtifactName
value: 'CoreCLRProduct_${{ parameters.pgoType }}_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: buildProductRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(buildConfigUpper)'
- name: buildCrossDacArtifactName
value: CoreCLRCrossDacArtifacts
- name: crossDacArtifactPath
value: $(Build.SourcesDirectory)/artifacts/$(buildCrossDacArtifactName)
- name: buildMuslDacRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/alpine.$(archType).$(buildConfigUpper)'
- name: buildMuslDacStagingPath
value: '$(crossDacArtifactPath)/Linux_musl.$(archType).$(buildConfigUpper)'
- name: buildLinuxDacRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/Linux.$(archType).$(buildConfigUpper)'
- name: buildLinuxDacStagingPath
value: '$(crossDacArtifactPath)/Linux.$(archType).$(buildConfigUpper)'
- name: crossDacHostArch
value: x64
- ${{ if eq(parameters.archType, 'arm') }}:
- name: crossDacHostArch
value: x86
# We need this because both mono and coreclr build currently depends on CoreClr
- name: coreClrProductArtifactName
value: 'CoreCLRProduct_${{ parameters.pgoType }}_${{ parameters.runtimeVariant }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: coreClrProductRootFolderPath
value: '$(Build.SourcesDirectory)/artifacts/bin/coreclr/$(osGroup).$(archType).$(buildConfigUpper)'
- name: corelibProductArtifactName
value: 'CoreLib_${{ parameters.pgoType }}_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: managedGenericTestArtifactName
value: 'CoreCLRManagedTestArtifacts_AnyOS_AnyCPU_$(buildConfig)'
- name: managedTestArtifactRootFolderPath
value: '$(binTestsPath)/$(osGroup).$(archType).$(buildConfigUpper)'
- name: nativeTestArtifactName
value: 'CoreCLRNativeTestArtifacts_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)'
- name: nativeTestArtifactRootFolderPath
value: '$(binTestsPath)/obj/$(osGroup).$(archType).$(buildConfigUpper)'
- name: microsoftNetSdkIlFolderPath
value: '$(Build.SourcesDirectory)/.packages/microsoft.net.sdk.il'
- name: microsoftNetSdkIlArtifactName
value: 'MicrosoftNetSdkIlPackage_AnyOS_AnyCPU_$(buildConfig)'
- name: priorityArg
value: ''
# 'innerloop' and 'clrinterpreter' jobs run the Priority 0 tests; everything else runs the Priority 1 tests.
# 'gc-standalone' is forced to run pri0 as well to start with.
- ${{ if and(ne(parameters.testGroup, 'innerloop'), ne(parameters.testGroup, 'clrinterpreter'), ne(parameters.testGroup, 'gc-standalone'), ne(parameters.testGroup, 'gc-standalone-server') ) }}:
- ${{ if ne(parameters.osGroup, 'windows') }}:
- name: priorityArg
value: 'priority1'
- ${{ if eq(parameters.osGroup, 'windows') }}:
- name: priorityArg
value: '-priority=1'
- librariesBuildArtifactName: ''
- librariesOverrideArg: ''
- librariesDownloadDir: ''
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
- librariesBuildArtifactName: ${{ format('libraries_bin_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
- librariesDownloadDir: $(Build.SourcesDirectory)/artifacts
- librariesOverrideArg: ' /p:LibrariesConfiguration=${{ parameters.liveLibrariesBuildConfig }}'
- ${{ each variable in parameters.variables }}:
- ${{insert}}: ${{ variable }}
- name: osArg
value: ''
- ${{ if eq(parameters.osGroup, 'FreeBSD') }}:
- name: osArg
value: -os FreeBSD
steps: ${{ parameters.steps }}