Skip to content

Commit a5e15c2

Browse files
authored
Merge pull request #9 from ericstj/JsonCodeGen-CI
Adding CI coverage to CI
2 parents ba1bef6 + 0ef3fc9 commit a5e15c2

File tree

9 files changed

+326
-73
lines changed

9 files changed

+326
-73
lines changed

eng/pipelines/common/templates/runtimes/build-test-job.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ parameters:
2222
runtimeFlavor: 'coreclr'
2323
runtimeFlavorDisplayName: 'CoreCLR'
2424
runtimeVariant: ''
25+
dependsOn: []
2526

2627
### Build managed test components (native components are getting built as part
2728
### of the the product build job).
@@ -63,10 +64,13 @@ jobs:
6364
# See https://docs.microsoft.com/azure/devops/pipelines/process/conditions
6465
condition: and(succeeded(), ${{ parameters.condition }})
6566

67+
${{ if ne(parameters.dependsOn[0], '') }}:
68+
dependsOn: ${{ parameters.dependsOn }}
69+
6670
# TODO: Build of managed test components currently depends on the corresponding build job
6771
# because it needs System.Private.Corelib; we should be able to remove this dependency
6872
# by switching over to using reference assembly.
69-
${{ if ne(parameters.stagedBuild, true) }}:
73+
${{ if and(ne(parameters.stagedBuild, true), eq(parameters.dependsOn[0], '')) }}:
7074
dependsOn:
7175
- ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, coalesce(parameters.liveRuntimeBuildConfig, parameters.buildConfig)) }}
7276
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:

eng/pipelines/common/templates/runtimes/run-test-job.yml

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ parameters:
2020
pool: ''
2121
runtimeFlavor: 'coreclr'
2222
runtimeFlavorDisplayName: 'CoreCLR'
23+
dependsOn: []
2324

2425
### Test run job
2526

@@ -47,15 +48,19 @@ jobs:
4748
${{ if eq(variables['System.TeamProject'], 'internal') }}:
4849
continueOnError: true
4950

50-
dependsOn:
51-
- ${{ if eq(parameters.testGroup, 'innerloop') }}:
52-
- '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}'
53-
- ${{ if ne(parameters.testGroup, 'innerloop') }}:
54-
- '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}'
55-
- ${{ if ne(parameters.stagedBuild, true) }}:
56-
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
57-
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
58-
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
51+
${{ if ne(parameters.dependsOn[0], '') }}:
52+
dependsOn: ${{ parameters.dependsOn }}
53+
54+
${{ if eq(parameters.dependsOn[0], '') }}:
55+
dependsOn:
56+
- ${{ if eq(parameters.testGroup, 'innerloop') }}:
57+
- '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}'
58+
- ${{ if ne(parameters.testGroup, 'innerloop') }}:
59+
- '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}'
60+
- ${{ if ne(parameters.stagedBuild, true) }}:
61+
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
62+
- ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}:
63+
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }}
5964

6065
# Compute job name from template parameters
6166
${{ if eq(parameters.testGroup, 'innerloop') }}:

eng/pipelines/libraries/build-job.yml

Lines changed: 4 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -97,62 +97,16 @@ jobs:
9797
displayName: Disk Usage after Build
9898
9999
- ${{ if eq(parameters.runTests, false) }}:
100-
- ${{ if ne(parameters.isOfficialBuild, true) }}:
101-
- task: CopyFiles@2
102-
displayName: Prepare testhost folder to publish
103-
inputs:
104-
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/testhost
105-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/testhost
106-
107-
- task: CopyFiles@2
108-
displayName: Prepare artifacts toolset folder to publish
109-
inputs:
110-
sourceFolder: $(Build.SourcesDirectory)/artifacts/toolset
111-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/toolset
112-
113-
- task: CopyFiles@2
114-
displayName: Prepare runtime folder to publish
115-
inputs:
116-
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/runtime
117-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/runtime
118-
119-
- task: CopyFiles@2
120-
displayName: Prepare ref folder to publish
121-
inputs:
122-
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref
123-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref
124-
125-
- task: CopyFiles@2
126-
displayName: Prepare shared framework ref assemblies to publish
127-
inputs:
128-
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref/microsoft.netcore.app
129-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref/microsoft.netcore.app
130-
131-
- task: CopyFiles@2
132-
displayName: Prepare shared framework runtime folder to publish
133-
inputs:
134-
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/pkg
135-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/pkg
136-
100+
- template: /eng/pipelines/libraries/prepare-publish-for-tests.yml
101+
parameters:
102+
isOfficialBuild: ${{ parameters.isOfficialBuild }}
103+
137104
- task: CopyFiles@2
138105
displayName: Prepare docs folder to publish
139106
inputs:
140107
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/docs
141108
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/docs
142109

143-
- task: CopyFiles@2
144-
displayName: Prepare native folder to publish
145-
inputs:
146-
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/native
147-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/native
148-
149-
- task: CopyFiles@2
150-
displayName: Prepare artifacts packages folder to publish
151-
inputs:
152-
sourceFolder: $(Build.SourcesDirectory)/artifacts/packages
153-
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/packages
154-
condition: and(succeeded(), eq(variables['_librariesBuildProducedPackages'], true))
155-
156110
- template: /eng/pipelines/common/upload-artifact-step.yml
157111
parameters:
158112
rootFolder: $(Build.ArtifactStagingDirectory)/artifacts

eng/pipelines/libraries/build-test-job.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ parameters:
1616
variables: {}
1717
condition: true
1818
runTests: false
19+
dependsOn: []
1920

2021
jobs:
2122
- template: /eng/pipelines/libraries/base-job.yml
@@ -37,10 +38,13 @@ jobs:
3738
displayName: 'Test Build'
3839

3940
dependsOn:
40-
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
41-
# Libraries Test also depends on Product, now that the libraries build only depends on corelib
42-
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
43-
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }}
41+
- ${{ if ne(parameters.dependsOn[0], '') }}:
42+
- ${{ parameters.dependsOn }}
43+
- ${{ if eq(parameters.dependsOn[0], '') }}:
44+
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
45+
# Libraries Test also depends on Product, now that the libraries build only depends on corelib
46+
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
47+
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }}
4448

4549
variables:
4650
- librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.archType, parameters.buildConfig) }}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Steps used to prepare the Artifacts Staging Directory with required files for
2+
# executing libraries tests as well as shared framework assets
3+
parameters:
4+
isOfficialBuild: ''
5+
6+
steps:
7+
- ${{ if ne(parameters.isOfficialBuild, true) }}:
8+
- task: CopyFiles@2
9+
displayName: Prepare testhost folder to publish
10+
inputs:
11+
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/testhost
12+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/testhost
13+
14+
- task: CopyFiles@2
15+
displayName: Prepare artifacts toolset folder to publish
16+
inputs:
17+
sourceFolder: $(Build.SourcesDirectory)/artifacts/toolset
18+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/toolset
19+
20+
- task: CopyFiles@2
21+
displayName: Prepare runtime folder to publish
22+
inputs:
23+
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/runtime
24+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/runtime
25+
26+
- task: CopyFiles@2
27+
displayName: Prepare ref folder to publish
28+
inputs:
29+
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref
30+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref
31+
32+
- task: CopyFiles@2
33+
displayName: Prepare shared framework ref assemblies to publish
34+
inputs:
35+
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref/microsoft.netcore.app
36+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref/microsoft.netcore.app
37+
38+
- task: CopyFiles@2
39+
displayName: Prepare shared framework runtime folder to publish
40+
inputs:
41+
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/pkg
42+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/pkg
43+
44+
- task: CopyFiles@2
45+
displayName: Prepare native folder to publish
46+
inputs:
47+
sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/native
48+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/native
49+
50+
- task: CopyFiles@2
51+
displayName: Prepare artifacts packages folder to publish
52+
inputs:
53+
sourceFolder: $(Build.SourcesDirectory)/artifacts/packages
54+
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/packages
55+
condition: and(succeeded(), eq(variables['_librariesBuildProducedPackages'], true))

eng/pipelines/libraries/run-test-job.yml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ parameters:
2222
# stress modes that each test will be run with. This is the same usage as 'testGroup' in
2323
# eng/pipelines/common/templates/runtimes/run-test-job.yml.
2424
coreclrTestGroup: ''
25+
dependsOn: []
2526

2627
jobs:
2728
- template: /eng/pipelines/libraries/base-job.yml
@@ -50,14 +51,17 @@ jobs:
5051
testDisplayName: ${{ parameters.runtimeFlavor }}_interpreter_${{ parameters.liveRuntimeBuildConfig }}
5152

5253
dependsOn:
53-
- ${{ if notIn(parameters.framework, 'allConfigurations', 'net472') }}:
54-
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
55-
- ${{ format('libraries_test_build_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }}
56-
- ${{ if in(parameters.framework, 'allConfigurations', 'net472') }}:
57-
- ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
58-
- ${{ format('libraries_test_build_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }}
59-
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
60-
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }}
54+
- ${{ if ne(parameters.dependsOn[0], '') }}:
55+
- ${{ parameters.dependsOn }}
56+
- ${{ if eq(parameters.dependsOn[0], '') }}:
57+
- ${{ if notIn(parameters.framework, 'allConfigurations', 'net472') }}:
58+
- ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
59+
- ${{ format('libraries_test_build_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }}
60+
- ${{ if in(parameters.framework, 'allConfigurations', 'net472') }}:
61+
- ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
62+
- ${{ format('libraries_test_build_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }}
63+
- ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}:
64+
- ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }}
6165

6266
variables:
6367
- librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }}

0 commit comments

Comments
 (0)