From 0ef3fc9b7f5ce04af7f784529015720c4c15bccb Mon Sep 17 00:00:00 2001 From: Jose Perez Rodriguez Date: Wed, 8 Jul 2020 16:10:11 -0700 Subject: [PATCH] Adding CI coverage to CI --- .../templates/runtimes/build-test-job.yml | 6 +- .../templates/runtimes/run-test-job.yml | 23 ++- eng/pipelines/libraries/build-job.yml | 54 +----- eng/pipelines/libraries/build-test-job.yml | 12 +- .../libraries/prepare-publish-for-tests.yml | 55 ++++++ eng/pipelines/libraries/run-test-job.yml | 20 +- eng/pipelines/runtimelab.yml | 181 ++++++++++++++++++ .../runtimelab-post-build-steps.yml | 46 +++++ .../ICustomMarshaler_TargetWindows.csproj | 2 +- 9 files changed, 326 insertions(+), 73 deletions(-) create mode 100644 eng/pipelines/libraries/prepare-publish-for-tests.yml create mode 100644 eng/pipelines/runtimelab.yml create mode 100644 eng/pipelines/runtimelab/runtimelab-post-build-steps.yml diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 36f5cb686b3f5..45840c940223a 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -22,6 +22,7 @@ parameters: runtimeFlavor: 'coreclr' runtimeFlavorDisplayName: 'CoreCLR' runtimeVariant: '' + dependsOn: [] ### Build managed test components (native components are getting built as part ### of the the product build job). @@ -63,10 +64,13 @@ jobs: # See https://docs.microsoft.com/azure/devops/pipelines/process/conditions condition: and(succeeded(), ${{ parameters.condition }}) + ${{ if ne(parameters.dependsOn[0], '') }}: + dependsOn: ${{ parameters.dependsOn }} + # TODO: Build of managed test components currently depends on the corresponding build job # because it needs System.Private.Corelib; we should be able to remove this dependency # by switching over to using reference assembly. - ${{ if ne(parameters.stagedBuild, true) }}: + ${{ if and(ne(parameters.stagedBuild, true), eq(parameters.dependsOn[0], '')) }}: dependsOn: - ${{ format('coreclr_{0}_product_build_{1}{2}_{3}_{4}', parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, coalesce(parameters.liveRuntimeBuildConfig, parameters.buildConfig)) }} - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml index 8fc0cfed1ba32..02043c361c0f3 100644 --- a/eng/pipelines/common/templates/runtimes/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -20,6 +20,7 @@ parameters: pool: '' runtimeFlavor: 'coreclr' runtimeFlavorDisplayName: 'CoreCLR' + dependsOn: [] ### Test run job @@ -47,15 +48,19 @@ jobs: ${{ if eq(variables['System.TeamProject'], 'internal') }}: continueOnError: true - dependsOn: - - ${{ if eq(parameters.testGroup, 'innerloop') }}: - - '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}' - - ${{ if ne(parameters.testGroup, 'innerloop') }}: - - '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}' - - ${{ if ne(parameters.stagedBuild, true) }}: - - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: - - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }} + ${{ if ne(parameters.dependsOn[0], '') }}: + dependsOn: ${{ parameters.dependsOn }} + + ${{ if eq(parameters.dependsOn[0], '') }}: + dependsOn: + - ${{ if eq(parameters.testGroup, 'innerloop') }}: + - '${{ parameters.runtimeFlavor }}_common_test_build_p0_AnyOS_AnyCPU_${{parameters.buildConfig }}' + - ${{ if ne(parameters.testGroup, 'innerloop') }}: + - '${{ parameters.runtimeFlavor }}_common_test_build_p1_AnyOS_AnyCPU_${{parameters.buildConfig }}' + - ${{ if ne(parameters.stagedBuild, true) }}: + - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: + - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }} # Compute job name from template parameters ${{ if eq(parameters.testGroup, 'innerloop') }}: diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index f33f413f457ee..919eba8249a71 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -97,62 +97,16 @@ jobs: displayName: Disk Usage after Build - ${{ if eq(parameters.runTests, false) }}: - - ${{ if ne(parameters.isOfficialBuild, true) }}: - - task: CopyFiles@2 - displayName: Prepare testhost folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/testhost - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/testhost - - - task: CopyFiles@2 - displayName: Prepare artifacts toolset folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/toolset - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/toolset - - - task: CopyFiles@2 - displayName: Prepare runtime folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/runtime - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/runtime - - - task: CopyFiles@2 - displayName: Prepare ref folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref - - - task: CopyFiles@2 - displayName: Prepare shared framework ref assemblies to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref/microsoft.netcore.app - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref/microsoft.netcore.app - - - task: CopyFiles@2 - displayName: Prepare shared framework runtime folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/pkg - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/pkg - + - template: /eng/pipelines/libraries/prepare-publish-for-tests.yml + parameters: + isOfficialBuild: ${{ parameters.isOfficialBuild }} + - task: CopyFiles@2 displayName: Prepare docs folder to publish inputs: sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/docs targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/docs - - task: CopyFiles@2 - displayName: Prepare native folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/native - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/native - - - task: CopyFiles@2 - displayName: Prepare artifacts packages folder to publish - inputs: - sourceFolder: $(Build.SourcesDirectory)/artifacts/packages - targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/packages - condition: and(succeeded(), eq(variables['_librariesBuildProducedPackages'], true)) - - template: /eng/pipelines/common/upload-artifact-step.yml parameters: rootFolder: $(Build.ArtifactStagingDirectory)/artifacts diff --git a/eng/pipelines/libraries/build-test-job.yml b/eng/pipelines/libraries/build-test-job.yml index 0ce715add47c9..3db518ee30b47 100644 --- a/eng/pipelines/libraries/build-test-job.yml +++ b/eng/pipelines/libraries/build-test-job.yml @@ -16,6 +16,7 @@ parameters: variables: {} condition: true runTests: false + dependsOn: [] jobs: - template: /eng/pipelines/libraries/base-job.yml @@ -37,10 +38,13 @@ jobs: displayName: 'Test Build' dependsOn: - - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - # Libraries Test also depends on Product, now that the libraries build only depends on corelib - - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} + - ${{ if ne(parameters.dependsOn[0], '') }}: + - ${{ parameters.dependsOn }} + - ${{ if eq(parameters.dependsOn[0], '') }}: + - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + # Libraries Test also depends on Product, now that the libraries build only depends on corelib + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} variables: - librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.archType, parameters.buildConfig) }} diff --git a/eng/pipelines/libraries/prepare-publish-for-tests.yml b/eng/pipelines/libraries/prepare-publish-for-tests.yml new file mode 100644 index 0000000000000..835cdfb0eb2c9 --- /dev/null +++ b/eng/pipelines/libraries/prepare-publish-for-tests.yml @@ -0,0 +1,55 @@ +# Steps used to prepare the Artifacts Staging Directory with required files for +# executing libraries tests as well as shared framework assets +parameters: + isOfficialBuild: '' + +steps: + - ${{ if ne(parameters.isOfficialBuild, true) }}: + - task: CopyFiles@2 + displayName: Prepare testhost folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/testhost + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/testhost + + - task: CopyFiles@2 + displayName: Prepare artifacts toolset folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/toolset + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/toolset + + - task: CopyFiles@2 + displayName: Prepare runtime folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/runtime + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/runtime + + - task: CopyFiles@2 + displayName: Prepare ref folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref + + - task: CopyFiles@2 + displayName: Prepare shared framework ref assemblies to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/ref/microsoft.netcore.app + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/ref/microsoft.netcore.app + + - task: CopyFiles@2 + displayName: Prepare shared framework runtime folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/pkg + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/pkg + + - task: CopyFiles@2 + displayName: Prepare native folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/bin/native + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/bin/native + + - task: CopyFiles@2 + displayName: Prepare artifacts packages folder to publish + inputs: + sourceFolder: $(Build.SourcesDirectory)/artifacts/packages + targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/packages + condition: and(succeeded(), eq(variables['_librariesBuildProducedPackages'], true)) diff --git a/eng/pipelines/libraries/run-test-job.yml b/eng/pipelines/libraries/run-test-job.yml index ee446ac7e95b5..5980a2e2ef15c 100644 --- a/eng/pipelines/libraries/run-test-job.yml +++ b/eng/pipelines/libraries/run-test-job.yml @@ -22,6 +22,7 @@ parameters: # stress modes that each test will be run with. This is the same usage as 'testGroup' in # eng/pipelines/common/templates/runtimes/run-test-job.yml. coreclrTestGroup: '' + dependsOn: [] jobs: - template: /eng/pipelines/libraries/base-job.yml @@ -50,14 +51,17 @@ jobs: testDisplayName: ${{ parameters.runtimeFlavor }}_interpreter_${{ parameters.liveRuntimeBuildConfig }} dependsOn: - - ${{ if notIn(parameters.framework, 'allConfigurations', 'net472') }}: - - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - - ${{ format('libraries_test_build_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} - - ${{ if in(parameters.framework, 'allConfigurations', 'net472') }}: - - ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} - - ${{ format('libraries_test_build_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} - - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: - - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} + - ${{ if ne(parameters.dependsOn[0], '') }}: + - ${{ parameters.dependsOn }} + - ${{ if eq(parameters.dependsOn[0], '') }}: + - ${{ if notIn(parameters.framework, 'allConfigurations', 'net472') }}: + - ${{ format('libraries_build_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + - ${{ format('libraries_test_build_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} + - ${{ if in(parameters.framework, 'allConfigurations', 'net472') }}: + - ${{ format('libraries_build_{0}_{1}{2}_{3}_{4}', parameters.framework, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} + - ${{ format('libraries_test_build_{0}_{1}_{2}_{3}', parameters.framework, parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} + - ${{ if ne(parameters.liveRuntimeBuildConfig, '') }}: + - ${{ format('{0}_{1}_product_build_{2}{3}_{4}_{5}', parameters.runtimeFlavor, parameters.runtimeVariant, parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveRuntimeBuildConfig) }} variables: - librariesTestsArtifactName: ${{ format('libraries_test_assets_{0}_{1}_{2}', parameters.osGroup, parameters.dependsOnTestArchitecture, parameters.dependsOnTestBuildConfiguration) }} diff --git a/eng/pipelines/runtimelab.yml b/eng/pipelines/runtimelab.yml new file mode 100644 index 0000000000000..e56a78a8db6ad --- /dev/null +++ b/eng/pipelines/runtimelab.yml @@ -0,0 +1,181 @@ +# Setting batch to true, triggers one build at a time. +# if there is a push while a build in progress, it will wait, +# until the running build finishes, and produce a build with all the changes +# that happened during the last build. +trigger: + batch: true + branches: + include: + - Utf8String + - JsonCodeGen + paths: + include: + - '*' + - docs/manpages/* + exclude: + - eng/Version.Details.xml + - .github/* + - docs/* + - CODE-OF-CONDUCT.md + - CONTRIBUTING.md + - LICENSE.TXT + - PATENTS.TXT + - README.md + - SECURITY.md + - THIRD-PARTY-NOTICES.TXT + +pr: + branches: + include: + - Utf8String + - JsonCodeGen + paths: + include: + - '*' + - docs/manpages/* + exclude: + - eng/Version.Details.xml + - .github/* + - docs/* + - CODE-OF-CONDUCT.md + - CONTRIBUTING.md + - LICENSE.TXT + - PATENTS.TXT + - README.md + - SECURITY.md + - THIRD-PARTY-NOTICES.TXT + +variables: + - template: /eng/pipelines/common/variables.yml + +jobs: +# +# Checkout repository +# +- template: /eng/pipelines/common/checkout-job.yml + +# +# Build with Debug config and Checked runtimeConfiguration +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Checked + platforms: + - Linux_x64 + - Windows_NT_x64 + jobParameters: + testGroup: innerloop + buildArgs: -s clr+libs+installer -c debug -runtimeConfiguration Checked + extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + +# +# Build with Release config and Release runtimeConfiguration +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + platforms: + - Linux_x64 + - Windows_NT_x64 + jobParameters: + testGroup: innerloop + buildArgs: -s clr+libs+installer -c $(_BuildConfig) + extraStepsTemplate: /eng/pipelines/runtimelab/runtimelab-post-build-steps.yml + +# +# Build with Release allConfigurations to produce packages +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: release + platforms: + - Windows_NT_x64 + jobParameters: + testGroup: innerloop + nameSuffix: All_Configurations + buildArgs: -s clr.corelib+libs -c $(_BuildConfig) -allConfigurations + +# +# CoreCLR Test builds using live libraries release build +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: Checked + platforms: + - Linux_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + dependsOn: + - build_Linux_x64_Checked_ + - build_Linux_x64_Release_ + +# +# Libraries Test Build +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-test-job.yml + buildConfig: Release + platforms: + - Linux_x64 + jobParameters: + isOfficialBuild: false + liveRuntimeBuildConfig: Release + testScope: innerloop + dependsOn: + - build_Linux_x64_Release_ + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-test-job.yml + buildConfig: Release + platforms: + - Windows_NT_x64 + jobParameters: + isOfficialBuild: false + liveRuntimeBuildConfig: Release + testScope: innerloop + dependsOn: + - build_Windows_NT_x64_Release_ + +# +# Libraries Release Test Execution against a release coreclr runtime +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: false + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: Release + dependsOnTestBuildConfiguration: Release + dependsOnTestArchitecture: x64 + dependsOn: + - libraries_test_build_Linux_x64_Release + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - Windows_NT_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: false + isOfficialBuild: false + testScope: innerloop + liveRuntimeBuildConfig: Release + dependsOnTestBuildConfiguration: Release + dependsOnTestArchitecture: x64 + dependsOn: + - libraries_test_build_Windows_NT_x64_Release diff --git a/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml b/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml new file mode 100644 index 0000000000000..8fd4f723b1243 --- /dev/null +++ b/eng/pipelines/runtimelab/runtimelab-post-build-steps.yml @@ -0,0 +1,46 @@ +parameters: + buildConfig: '' + archType: '' + osGroup: '' + osSubgroup: '' + +steps: + # Build coreclr native test output + - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) skipstressdependencies skipmanaged skipgeneratelayout $(buildConfigUpper) ${{ parameters.archType }} + displayName: Build native test components + + # Copy all build output into artifacts staging directory + - template: /eng/pipelines/libraries/prepare-publish-for-tests.yml + + # Zip CoreCLR Build Output + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/artifacts/bin/coreclr/${{ parameters.osGroup }}.${{ parameters.archType }}.$(buildConfigUpper) + archiveType: $(archiveType) + tarCompression: $(tarCompression) + includeRootFolder: false + archiveExtension: $(archiveExtension) + artifactName: CoreCLRProduct__${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }} + displayName: 'CoreCLR product build' + + # Zip product native assets for use by Tests + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.SourcesDirectory)/artifacts/tests/coreclr/${{ parameters.osGroup }}.${{ parameters.archType }}.$(buildConfigUpper) + includeRootFolder: false + archiveType: $(archiveType) + tarCompression: $(tarCompression) + archiveExtension: $(archiveExtension) + artifactName: CoreCLRNativeTestArtifacts_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }} + displayName: 'native test components' + + # Zip Libraries Build Output + - template: /eng/pipelines/common/upload-artifact-step.yml + parameters: + rootFolder: $(Build.ArtifactStagingDirectory)/artifacts + archiveType: $(archiveType) + tarCompression: $(tarCompression) + includeRootFolder: false + archiveExtension: $(archiveExtension) + artifactName: libraries_bin_${{ parameters.osGroup }}${{ parameters.osSubgroup }}_${{ parameters.archType }}_${{ parameters.buildConfig }} + displayName: Build Assets diff --git a/src/coreclr/tests/src/Interop/ICustomMarshaler/Primitives/ICustomMarshaler_TargetWindows.csproj b/src/coreclr/tests/src/Interop/ICustomMarshaler/Primitives/ICustomMarshaler_TargetWindows.csproj index 854fbdda3febd..3c152f7cb31b8 100644 --- a/src/coreclr/tests/src/Interop/ICustomMarshaler/Primitives/ICustomMarshaler_TargetWindows.csproj +++ b/src/coreclr/tests/src/Interop/ICustomMarshaler/Primitives/ICustomMarshaler_TargetWindows.csproj @@ -10,6 +10,6 @@ - +