diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 303276853..e3934489b 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -35,11 +35,10 @@ variables: value: '' - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - - group: DotNet-MSRC-Storage - group: DotNetBuilds storage account read tokens - name: _InternalRuntimeDownloadArgs - value: /p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet - /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64) + value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal + /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) /p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64) stages: @@ -391,8 +390,10 @@ stages: - Source_Build_Create_Tarball publishUsingPipelines: true pool: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals build.windows.10.amd64.vs2019 + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals build.windows.10.amd64.vs2017 + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - template: eng\common\templates\post-build\post-build.yml diff --git a/NuGet.config b/NuGet.config index 459c393cc..605398339 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,16 +7,28 @@ + + + + + + + + + + + + @@ -35,11 +47,25 @@ + + + + + + + + + + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3dd9a0ce6..4d121fd28 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,46 +1,46 @@ - - https://github.com/dotnet/windowsdesktop - 59fea7da1dbb6e48837fa726cc2760b154bce3d1 - - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef15b555537a90da229ce6474658ae1a9916a932 + 9fbd3ecd250dda95f93b0123ab017efb1e0e6033 - - https://github.com/dotnet/windowsdesktop - 59fea7da1dbb6e48837fa726cc2760b154bce3d1 - - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef15b555537a90da229ce6474658ae1a9916a932 + 9fbd3ecd250dda95f93b0123ab017efb1e0e6033 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 3a25a7f1cc446b60678ed25c9d829420d6321eba + + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop + 9fbd3ecd250dda95f93b0123ab017efb1e0e6033 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 3a25a7f1cc446b60678ed25c9d829420d6321eba + + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop + 9fbd3ecd250dda95f93b0123ab017efb1e0e6033 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 3a25a7f1cc446b60678ed25c9d829420d6321eba + 839cdfb0ecca5e0be3dbccd926e7651ef50fdf10 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 3a25a7f1cc446b60678ed25c9d829420d6321eba + 839cdfb0ecca5e0be3dbccd926e7651ef50fdf10 + + + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + 839cdfb0ecca5e0be3dbccd926e7651ef50fdf10 + + + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + 839cdfb0ecca5e0be3dbccd926e7651ef50fdf10 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 3a25a7f1cc446b60678ed25c9d829420d6321eba + 839cdfb0ecca5e0be3dbccd926e7651ef50fdf10 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 3a25a7f1cc446b60678ed25c9d829420d6321eba + 839cdfb0ecca5e0be3dbccd926e7651ef50fdf10 @@ -52,108 +52,108 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 3a25a7f1cc446b60678ed25c9d829420d6321eba - - https://github.com/dotnet/aspnetcore - ae1a6cbe225b99c0bf38b7e31bf60cb653b73a52 - - - https://github.com/dotnet/aspnetcore - ae1a6cbe225b99c0bf38b7e31bf60cb653b73a52 - - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 4e7d976438b0fc17f435804e801d5d68d193ec33 + 1dcf7acfacf0fe154adcc23270cb0da11ff44ace + + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + 1dcf7acfacf0fe154adcc23270cb0da11ff44ace + + + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore + 1dcf7acfacf0fe154adcc23270cb0da11ff44ace - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 4e7d976438b0fc17f435804e801d5d68d193ec33 + 1dcf7acfacf0fe154adcc23270cb0da11ff44ace - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 4e7d976438b0fc17f435804e801d5d68d193ec33 + 1dcf7acfacf0fe154adcc23270cb0da11ff44ace - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 4e7d976438b0fc17f435804e801d5d68d193ec33 + 1dcf7acfacf0fe154adcc23270cb0da11ff44ace - + https://github.com/dotnet/test-templates c40ef7e056b48e011c43a21354d6790ba6b8b4fc - + https://github.com/dotnet/test-templates c40ef7e056b48e011c43a21354d6790ba6b8b4fc - + https://github.com/dotnet/test-templates c40ef7e056b48e011c43a21354d6790ba6b8b4fc - - https://github.com/dotnet/templating - 55fa299ca45a3c19e8970e6afba34951e368525a + + https://dev.azure.com/dnceng/internal/_git/dotnet-templating + e6d9bf1868c4aa2808714ada839018a8506bd7dd - - https://github.com/dotnet/templating - 55fa299ca45a3c19e8970e6afba34951e368525a + + https://dev.azure.com/dnceng/internal/_git/dotnet-templating + e6d9bf1868c4aa2808714ada839018a8506bd7dd - - https://github.com/dotnet/templating - 55fa299ca45a3c19e8970e6afba34951e368525a + + https://dev.azure.com/dnceng/internal/_git/dotnet-templating + e6d9bf1868c4aa2808714ada839018a8506bd7dd - - https://github.com/dotnet/sdk - 6ca80ba4d8c6f3087176440622bbdb90e78d3708 + + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk + f9b6be31b19097cb47125075ca2e8322bf591fc0 - - https://github.com/dotnet/sdk - 6ca80ba4d8c6f3087176440622bbdb90e78d3708 + + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk + f9b6be31b19097cb47125075ca2e8322bf591fc0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 846205b4af05c7a200e1d203536fdc39994b9bd6 + 5ad241b9633924db40503de19cb502bb0aca7718 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 0350d04790959e8ebdd3ceab0d34a40f811f019d + fb76229895cae74c1adc62c2411a0730a2f3759b - + https://github.com/dotnet/fsharp - f49aeb20f1b257c3fecf6ddc37f4adefbb669b7f + 7200973937f45e4e270b27634b0550d2954668d3 - + https://github.com/dotnet/fsharp - f49aeb20f1b257c3fecf6ddc37f4adefbb669b7f + 7200973937f45e4e270b27634b0550d2954668d3 - + https://github.com/microsoft/vstest - a809880e02d8a9986e3ba1daeeeb5078fbb96be5 + d3c6439b04452047cb62fc645ce341a034bdb5be - + https://github.com/dotnet/linker - d0662ed8db919642177ddfd06a1c33895a69015f + cc3dc76c374152f86ff73aa02f35782b713908c6 linker - + https://github.com/dotnet/roslyn - f206c5d203c5562f814d3afa3c9e695250391c76 + 592501cbb9c9394072a245c15b3458ff88155d85 - + https://github.com/dotnet/msbuild - 797fd829a374a880f63fd4eea4ea6990404c48f4 + ae57d105c6094d8d59fe42f557ad0dcb46ec285e - + https://github.com/nuget/nuget.client - 9187a50daec29061772a2057490697c6c0e4c354 + f1906d3d581e0ea0bdd282134208d654f8447880 diff --git a/eng/Versions.props b/eng/Versions.props index ca044a3ad..5c357918e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -10,11 +10,11 @@ 3 00 $(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature) - preview + servicing $(VersionMajor).$(VersionMinor) $(MajorMinorVersion).$(VersionSDKMinor) - false + true release @@ -23,20 +23,20 @@ - 6.0.1-servicing.21567.5 + 6.0.2-servicing.22064.7 - 6.0.1-servicing.21567.7 + 6.0.2-servicing.22064.8 - 6.0.200-preview.21623.5 + 6.0.200 - 1.0.2-beta4.21473.2 - 1.0.2-beta4.21473.2 + 1.0.2-beta4.22064.3 + 1.0.2-beta4.22064.3 @@ -44,20 +44,20 @@ - 6.0.1 - 6.0.0 - 6.0.0-rtm.21526.8 - 6.0.1-servicing.21567.14 - 6.0.1-servicing.21567.14 - 6.0.1-servicing.21567.14 + 6.0.2 + 6.0.2 + 6.0.2-servicing.22064.12 + 6.0.2-servicing.22064.12 + 6.0.2-servicing.22064.12 + 6.0.2-servicing.22064.12 0.2.0 - 6.0.200-preview.22055.23 - 6.0.200-preview.22055.23 + 6.0.200-rtm.22104.9 + 6.0.200-rtm.22104.9 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) @@ -68,20 +68,20 @@ - 6.0.1-servicing.21567.5 - 6.0.1-servicing.21567.5 - 6.0.1 - 6.0.1 - 6.0.1 - 6.0.1 + 6.0.2-servicing.22064.6 + 6.0.2-servicing.22064.6 + 6.0.2 + 6.0.2 + 6.0.2 + 6.0.2 2.1.0 - 6.0.1-servicing.21568.2 - 6.0.0-rtm.21523.1 - 6.0.1 - 6.0.0 + 6.0.2-servicing.22064.6 + 6.0.2-servicing.22064.6 + 6.0.2 + 6.0.2 @@ -113,7 +113,7 @@ $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) $(MicrosoftDotNetCommonItemTemplatesPackageVersion) - 6.0.200-preview.21623.5 + 6.0.200 $(MicrosoftAspNetCoreAppRuntimePackageVersion) $(MicrosoftDotnetWinFormsProjectTemplatesPackageVersion) @@ -121,7 +121,7 @@ $(NUnit3DotNetNewTemplatePackageVersion) $(MicrosoftDotNetCommonItemTemplates50PackageVersion) $(MicrosoftDotNetCommonItemTemplates50PackageVersion) - 5.0.13 + 5.0.14 4.8.1-servicing.19605.5 3.1.2-servicing.20066.4 @@ -143,14 +143,14 @@ 1.5.3 1.0.2-beta3 $(MicrosoftDotNetCommonItemTemplates21PackageVersion) - 1.0.2-beta4.21473.2 + 1.0.2-beta4.22064.3 2.1.30 2.2.0-beta.19072.10 2.0.0 - 17.2.0-preview-20211210-01 + 17.1.0-release-20220113-05 @@ -172,19 +172,19 @@ or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 0.1.0-6.0.100-bootstrap.29 + 6.0.1-1 - 6.0.101-preview.9.1805 - 31.0.101-preview.9.16 - 15.0.101-preview.9.31 - 15.0.101-preview.9.31 - 12.0.101-preview.9.31 - 15.0.101-preview.9.31 - $(MicrosoftNETCoreAppRefPackageVersion) - 6.0.0 - $(MicrosoftNETWorkloadEmscriptenManifest60100Version) + 6.0.200-preview.13.2747 + 31.0.200-preview.13.41 + 15.2.301-preview.13.2 + 15.2.301-preview.13.2 + 12.1.301-preview.13.2 + 15.2.301-preview.13.2 + 6.0.2-mauipre.1.22102.15 + 6.0.1 + $(MicrosoftNETWorkloadEmscriptenManifest60200Version) diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index ba40dc82f..abb1b2bcd 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -43,8 +43,8 @@ steps: # In that case, add variables to allow the download of internal runtimes if the specified versions are not found # in the default public locations. internalRuntimeDownloadArgs= - if [ '$(dotnetclimsrc-read-sas-token-base64)' != '$''(dotnetclimsrc-read-sas-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64) --runtimesourcefeed https://dotnetclimsrc.blob.core.windows.net/dotnet --runtimesourcefeedkey $(dotnetclimsrc-read-sas-token-base64)' + if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' fi buildConfig=Release diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml index 93e1f1d5e..8e55a40b5 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml @@ -42,8 +42,8 @@ jobs: # In that case, add variables to allow the download of internal runtimes if the specified versions are not found # in the default public locations. internalRuntimeDownloadArgs= - if [ '$(dotnetclimsrc-read-sas-token-base64)' != '$''(dotnetclimsrc-read-sas-token-base64)' ]; then - internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64) --runtimesourcefeed https://dotnetclimsrc.blob.core.windows.net/dotnet --runtimesourcefeedkey $(dotnetclimsrc-read-sas-token-base64)' + if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' fi ./build.sh \ diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml index 70a63dc82..6330a1529 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml @@ -69,11 +69,24 @@ jobs: _ExcludeOmniSharpTests: false _RunOnline: false timeoutInMinutes: 300 + variables: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats workspace: clean: all steps: - - checkout: none + - checkout: self + clean: true + + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) - template: /src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml parameters: @@ -110,11 +123,24 @@ jobs: _Container: ${{ parameters.fedora33Container }} _RunOnline: false timeoutInMinutes: 180 + variables: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats workspace: clean: all steps: - - checkout: none + - checkout: self + clean: true + + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) - download: current artifact: $(_PreviousSourceBuildArtifact) diff --git a/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml b/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml index 2891bdc13..cfb965134 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/steps/source-build-build-tarball.yml @@ -66,7 +66,11 @@ steps: - script: | set -x - docker run --rm -v ${{ parameters.tarballDir }}:/tarball -w /tarball -e excludeOmniSharpTests=${{ parameters.excludeOmniSharpTests}} ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }} + # Use installer repo's NuGet.config during online testing to utilize internal feeds + rm -f ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config + cp NuGet.config ${{ parameters.tarballDir }}/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config + + docker run --rm -v ${{ parameters.tarballDir }}:/tarball -w /tarball -e EXCLUDE_OMNISHARP_TESTS=${{ parameters.excludeOmniSharpTests}} ${{ parameters.container }} ./build.sh --run-smoke-test ${{ parameters.additionalBuildArgs }} displayName: Run Tests # Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph. @@ -82,7 +86,7 @@ steps: find artifacts/prebuilt-report/ -exec cp {} --parents -t ${targetFolder} \; find src/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; find src/ -type f -name "*.log" -exec cp {} --parents -t ${targetFolder} \; - find testing-smoke/logs -exec cp {} --parents -t ${targetFolder} \; + find test/*/*/*/*/*/testing-smoke*/logs -exec cp {} --parents -t ${targetFolder} \; displayName: Prepare BuildLogs staging directory continueOnError: true condition: succeededOrFailed() @@ -93,6 +97,20 @@ steps: continueOnError: true condition: succeededOrFailed() + - task: PublishTestResults@2 + displayName: Publish Test Results + condition: succeededOrFailed() + continueOnError: true + inputs: + testRunner: vSTest + testResultsFiles: 'test/**/*.trx' + searchFolder: ${{ parameters.tarballDir }} + mergeTestResults: true + publishRunAttachments: true + testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName) + - publish: '${{ parameters.tarballDir }}/artifacts/${{ parameters.buildArch}}/Release/' artifact: $(Agent.JobName)_Artifacts displayName: Publish Artifacts + condition: succeededOrFailed() + continueOnError: true diff --git a/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets b/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets index 9a49c3499..76297fd3b 100644 --- a/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets +++ b/src/SourceBuild/Arcade/tools/SourceBuildArcadeTarball.targets @@ -19,7 +19,7 @@ $(TarballRootDir)src/ $(TarballRootDir)git-info/ quiet - true + true $(GitHubRepositoryName) - 1.0.0 - 1.0.0 + $(VersionPrefix) + $(VersionPrefix) @(RootRepoCommitSha) @(RootRepoUri) @(RootRepoCommitCount) diff --git a/src/SourceBuild/Arcade/tools/TextOnlyPackages.csproj b/src/SourceBuild/Arcade/tools/TextOnlyPackages.csproj index 89142c504..06873950f 100644 --- a/src/SourceBuild/Arcade/tools/TextOnlyPackages.csproj +++ b/src/SourceBuild/Arcade/tools/TextOnlyPackages.csproj @@ -28,6 +28,7 @@ + @@ -41,14 +42,14 @@ - - - - - - - - + + + + + + + + - $(SmokeTestCommand) --excludeWebHttpsTests + + %(SdkTarballItem.Identity) - + DOTNET_TARBALL_PATH=$(SdkTarballPath); + TARGET_RID=$(TargetRid); + " /> + + + + + $(OutputPath)dotnet-smoke-test-prereqs.$(installerOutputPackageVersion).tar.gz + + + + + @@ -150,8 +162,7 @@ - $(PrivateSourceBuiltPrebuiltsPackageVersionPrefix)$([MSBuild]::Add($(PrivateSourceBuiltPrebuiltsPackageVersionSuffix), 1)) - $(OutputPath)$(SourceBuiltPrebuiltsTarballName).$(TarballFileVersion).tar.gz + $(OutputPath)$(SourceBuiltPrebuiltsTarballName).$(installerOutputPackageVersion).tar.gz $(ResultingPrebuiltPackagesDir) diff --git a/src/SourceBuild/tarball/content/eng/Versions.props b/src/SourceBuild/tarball/content/eng/Versions.props index 1925782b6..df7b892f6 100644 --- a/src/SourceBuild/tarball/content/eng/Versions.props +++ b/src/SourceBuild/tarball/content/eng/Versions.props @@ -9,9 +9,4 @@ 2.2.0 - - - 0.1.0-6.0.100- - 36 - diff --git a/src/SourceBuild/tarball/content/repos/package-source-build.proj b/src/SourceBuild/tarball/content/repos/package-source-build.proj index 96c21c3b7..0101374dc 100644 --- a/src/SourceBuild/tarball/content/repos/package-source-build.proj +++ b/src/SourceBuild/tarball/content/repos/package-source-build.proj @@ -47,7 +47,7 @@ Directories="$(SourceBuildReferencePackagesDestination)extractArtifacts/" /> - $(OutputPath)$(SourceBuiltArtifactsTarballName).$(VersionPrefix)-$(VersionSuffix).tar.gz + $(OutputPath)$(SourceBuiltArtifactsTarballName).$(installerOutputPackageVersion).tar.gz diff --git a/src/SourceBuild/tarball/content/scripts/bootstrap/buildBootstrapPreviouslySB.csproj b/src/SourceBuild/tarball/content/scripts/bootstrap/buildBootstrapPreviouslySB.csproj index 0a2fcff17..14921a48f 100644 --- a/src/SourceBuild/tarball/content/scripts/bootstrap/buildBootstrapPreviouslySB.csproj +++ b/src/SourceBuild/tarball/content/scripts/bootstrap/buildBootstrapPreviouslySB.csproj @@ -19,10 +19,20 @@ + + + + + + + + diff --git a/src/SourceBuild/tarball/content/smoke-testNuGet.Config b/src/SourceBuild/tarball/content/smoke-testNuGet.Config deleted file mode 100644 index 79dbf806a..000000000 --- a/src/SourceBuild/tarball/content/smoke-testNuGet.Config +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/SourceBuild/tarball/content/test/Directory.Build.props b/src/SourceBuild/tarball/content/test/Directory.Build.props new file mode 100644 index 000000000..5bec34ce2 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Directory.Build.props @@ -0,0 +1,7 @@ + + + + + diff --git a/src/SourceBuild/tarball/content/test/Directory.Build.targets b/src/SourceBuild/tarball/content/test/Directory.Build.targets new file mode 100644 index 000000000..5bec34ce2 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Directory.Build.targets @@ -0,0 +1,7 @@ + + + + + diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs new file mode 100644 index 000000000..73c2951f7 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/BaselineHelper.cs @@ -0,0 +1,37 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using Xunit; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests +{ + internal class BaselineHelper + { + public static void Compare(string baselineFileName, IOrderedEnumerable actualEntries) + { + IEnumerable baseline = File.ReadAllLines(GetBaselineFilePath(baselineFileName)); + string[] missingEntries = actualEntries.Except(baseline).ToArray(); + string[] extraEntries = baseline.Except(actualEntries).ToArray(); + + string? message = null; + if (missingEntries.Length > 0) + { + message = $"Missing entries in '{baselineFileName}' baseline: {Environment.NewLine}{string.Join(Environment.NewLine, missingEntries)}{Environment.NewLine}{Environment.NewLine}"; + } + + if (extraEntries.Length > 0) + { + message += $"Extra entries in '{baselineFileName}' baseline: {Environment.NewLine}{string.Join(Environment.NewLine, extraEntries)}{Environment.NewLine}{Environment.NewLine}"; + } + + Assert.Null(message); + } + + private static string GetBaselineFilePath(string baselineFileName) => Path.Combine(Directory.GetCurrentDirectory(), "baselines", baselineFileName); + } +} diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs new file mode 100644 index 000000000..be0e6b411 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Config.cs @@ -0,0 +1,19 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +internal static class Config +{ + public static string DotNetDirectory { get; } = Environment.GetEnvironmentVariable("DOTNET_DIR") ?? "./.dotnet"; + public static string DotNetTarballPath { get; } = Environment.GetEnvironmentVariable(DotNetTarballPathEnv) ?? string.Empty; + public const string DotNetTarballPathEnv = "DOTNET_TARBALL_PATH"; + public static bool ExcludeOmniSharpTests { get; } = + bool.TryParse(Environment.GetEnvironmentVariable("EXCLUDE_OMNISHARP_TESTS"), out bool excludeOmniSharpTests) ? excludeOmniSharpTests : false; + public static bool ExcludeOnlineTests { get; } = + bool.TryParse(Environment.GetEnvironmentVariable("EXCLUDE_ONLINE_TESTS"), out bool excludeOnlineTests) ? excludeOnlineTests : false; + public static string TargetRid { get; } = Environment.GetEnvironmentVariable("TARGET_RID") ?? string.Empty; +} diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs new file mode 100644 index 000000000..5a6716030 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/DotNetHelper.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics; +using System.IO; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +internal class DotNetHelper +{ + public string DotNetPath { get; } + public string DotNetInstallDirectory { get; } + + public DotNetHelper(ITestOutputHelper outputHelper) + { + if (!Directory.Exists(Config.DotNetDirectory)) + { + if (!File.Exists(Config.DotNetTarballPath)) + { + throw new InvalidOperationException($"Tarball path '{Config.DotNetTarballPath}' specified in {Config.DotNetTarballPathEnv} does not exist."); + } + + Directory.CreateDirectory(Config.DotNetDirectory); + ExecuteHelper.ExecuteProcess("tar", $"xzf {Config.DotNetTarballPath} -C {Config.DotNetDirectory}", outputHelper); + } + + DotNetInstallDirectory = Path.Combine(Directory.GetCurrentDirectory(), Config.DotNetDirectory); + DotNetPath = Path.Combine(DotNetInstallDirectory, "dotnet"); + } + + public void ExecuteDotNetCmd(string args, ITestOutputHelper outputHelper) + { + (Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess(DotNetPath, args, outputHelper); + + Assert.Equal(0, executeResult.Process.ExitCode); + } +} diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs new file mode 100644 index 000000000..2c38e43ca --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/ExecuteHelper.cs @@ -0,0 +1,63 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.Linq; +using System.Text; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +internal static class ExecuteHelper +{ + public static (Process Process, string StdOut, string StdErr) ExecuteProcess( + string fileName, string args, ITestOutputHelper outputHelper) + { + outputHelper.WriteLine($"Executing: {fileName} {args}"); + + Process process = new() + { + EnableRaisingEvents = true, + StartInfo = + { + FileName = fileName, + Arguments = args, + RedirectStandardOutput = true, + RedirectStandardError = true, + } + }; + + // The `dotnet test` execution context sets a number of dotnet related ENVs that cause issues when executing + // dotnet commands. Clear these to avoid side effects. + foreach (string key in process.StartInfo.Environment.Keys.Where(key => key != "HOME").ToList()) + { + process.StartInfo.Environment.Remove(key); + } + + StringBuilder stdOutput = new(); + process.OutputDataReceived += new DataReceivedEventHandler((sender, e) => stdOutput.AppendLine(e.Data)); + + StringBuilder stdError = new(); + process.ErrorDataReceived += new DataReceivedEventHandler((sender, e) => stdError.AppendLine(e.Data)); + + process.Start(); + process.BeginOutputReadLine(); + process.BeginErrorReadLine(); + process.WaitForExit(); + + string output = stdOutput.ToString().Trim(); + if (outputHelper != null && !string.IsNullOrWhiteSpace(output)) + { + outputHelper.WriteLine(output); + } + + string error = stdError.ToString().Trim(); + if (outputHelper != null && !string.IsNullOrWhiteSpace(error)) + { + outputHelper.WriteLine(error); + } + + return (process, output, error); + } +} diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj new file mode 100644 index 000000000..0846de14b --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj @@ -0,0 +1,36 @@ + + + + net6.0 + enable + + false + true + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + Always + + + Always + + + + + + + + + + + diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/README.md b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/README.md new file mode 100644 index 000000000..91317e44e --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/README.md @@ -0,0 +1,9 @@ +# Source Build Smoke Tests + +* Run these tests via `build.sh --run-smoke-test` +* Various configuration settings are stored in `Config.cs` + +## Prereq Packages +Some prerelease scenarios, usually security updates, require non-source-built packages which are not publicly available. +Place these packages in the tarball's `packages/smoke-test-prereqs`. When prereq packages are required, the +`EXCLUDE_ONLINE_TESTS=true` environment variable should be set when running tests via `build.sh --run-smoke-test`. diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SmokeTests.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SmokeTests.cs new file mode 100644 index 000000000..6ebd64e7d --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/SmokeTests.cs @@ -0,0 +1,45 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Diagnostics; +using System.IO; +using Xunit; +using Xunit.Abstractions; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +// This test suite invokes the smoke-test.sh which should be considered legacy. Those tests should be migrated to this test suite overtime. +public class SmokeTests +{ + private ITestOutputHelper OutputHelper { get; } + private DotNetHelper DotNetHelper { get; } + + public SmokeTests(ITestOutputHelper outputHelper) + { + OutputHelper = outputHelper; + DotNetHelper = new DotNetHelper(outputHelper); + } + + [Fact] + public void SmokeTestsScript() + { + string smokeTestArgs = $"--dotnetDir {Directory.GetParent(DotNetHelper.DotNetPath)} --projectOutput --archiveRestoredPackages --targetRid {Config.TargetRid}"; + if (Config.TargetRid.Contains("osx")) + { + smokeTestArgs += " --excludeWebHttpsTests"; + } + if (Config.ExcludeOmniSharpTests) + { + smokeTestArgs += " --excludeOmniSharpTests"; + } + if (Config.ExcludeOnlineTests) + { + smokeTestArgs += " --excludeOnlineTests"; + } + + (Process Process, string StdOut, string StdErr) executeResult = ExecuteHelper.ExecuteProcess("./smoke-tests/smoke-test.sh", smokeTestArgs, OutputHelper); + + Assert.Equal(0, executeResult.Process.ExitCode); + } +} diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/XmlDocTests.cs b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/XmlDocTests.cs new file mode 100644 index 000000000..dd4cadf70 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/XmlDocTests.cs @@ -0,0 +1,54 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.IO; +using Xunit; +using Xunit.Abstractions; +using System; +using System.Linq; + +namespace Microsoft.DotNet.SourceBuild.SmokeTests; + +public class XmlDocTests +{ + private ITestOutputHelper OutputHelper { get; } + private DotNetHelper DotNetHelper { get; } + + public XmlDocTests(ITestOutputHelper outputHelper) + { + OutputHelper = outputHelper; + DotNetHelper = new DotNetHelper(outputHelper); + } + + /// + /// Verifies every targeting pack assembly has a xml doc file. + /// There are exceptions which are specified in baselines/XmlDocIgnore.*.txt. + /// + [Fact] + public void VerifyTargetingPacksHaveDoc() + { + List missingXmlDoc = new(); + + string targetingPacksDirectory = Path.Combine(DotNetHelper.DotNetInstallDirectory, "packs"); + foreach (string targetingPackAssembly in Directory.EnumerateFiles(targetingPacksDirectory, "*.dll", SearchOption.AllDirectories)) + { + if (targetingPackAssembly.EndsWith("resources.dll")) + { + continue; + } + + string xmlFile = Path.ChangeExtension(targetingPackAssembly, ".xml"); + if (!File.Exists(xmlFile)) + { + string pathWithoutPacksPrefix = xmlFile.Substring(targetingPacksDirectory.Length + 1); + String[] pathParts = pathWithoutPacksPrefix.Split(Path.DirectorySeparatorChar); + string pathWithoutVersion = string.Join(Path.DirectorySeparatorChar, pathParts.Take(1).Concat(pathParts.Skip(2))); + missingXmlDoc.Add(pathWithoutVersion); + } + } + + BaselineHelper.Compare("MissingXmlDoc.txt", missingXmlDoc.OrderBy(entry => entry)); + } +} diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/baselines/MissingXmlDoc.txt b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/baselines/MissingXmlDoc.txt new file mode 100644 index 000000000..8db91d9d7 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/baselines/MissingXmlDoc.txt @@ -0,0 +1,175 @@ +Microsoft.AspNetCore.App.Ref/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.xml +Microsoft.AspNetCore.App.Ref/analyzers/dotnet/cs/Microsoft.AspNetCore.App.CodeFixes.xml +Microsoft.AspNetCore.App.Ref/analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.xml +Microsoft.NETCore.App.Ref/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.xml +Microsoft.NETCore.App.Ref/ref/net6.0/Microsoft.VisualBasic.xml +Microsoft.NETCore.App.Ref/ref/net6.0/mscorlib.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.AppContext.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Buffers.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.ComponentModel.DataAnnotations.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Configuration.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Core.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Data.DataSetExtensions.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Data.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Diagnostics.Debug.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Diagnostics.Tools.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Drawing.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Dynamic.Runtime.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Globalization.Calendars.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Globalization.Extensions.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Globalization.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.IO.Compression.Brotli.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.IO.Compression.FileSystem.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.IO.FileSystem.Primitives.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.IO.FileSystem.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.IO.UnmanagedMemoryStream.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.IO.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Net.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Numerics.Vectors.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Numerics.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Reflection.Extensions.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Reflection.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Resources.Reader.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Resources.ResourceManager.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Runtime.Extensions.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Runtime.Handles.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Runtime.Serialization.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Security.Principal.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Security.SecureString.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Security.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.ServiceModel.Web.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.ServiceProcess.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Text.Encoding.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Threading.Tasks.Extensions.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Threading.Tasks.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Threading.Timer.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Transactions.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.ValueTuple.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Web.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Windows.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Xml.Linq.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Xml.Serialization.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Xml.xml +Microsoft.NETCore.App.Ref/ref/net6.0/System.Xml.XmlDocument.xml +Microsoft.NETCore.App.Ref/ref/net6.0/WindowsBase.xml +NETStandard.Library.Ref/ref/netstandard2.1/Microsoft.Win32.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/mscorlib.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.AppContext.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Buffers.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Collections.Concurrent.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Collections.NonGeneric.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Collections.Specialized.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Collections.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ComponentModel.Composition.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ComponentModel.EventBasedAsync.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ComponentModel.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ComponentModel.TypeConverter.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ComponentModel.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Console.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Core.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Data.Common.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Data.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.Contracts.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.Debug.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.FileVersionInfo.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.Process.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.StackTrace.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.TextWriterTraceListener.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.Tools.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.TraceSource.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Diagnostics.Tracing.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Drawing.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Drawing.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Dynamic.Runtime.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Globalization.Calendars.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Globalization.Extensions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Globalization.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.Compression.FileSystem.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.Compression.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.Compression.ZipFile.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.FileSystem.DriveInfo.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.FileSystem.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.FileSystem.Watcher.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.FileSystem.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.IsolatedStorage.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.MemoryMappedFiles.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.Pipes.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.UnmanagedMemoryStream.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.IO.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Linq.Expressions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Linq.Parallel.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Linq.Queryable.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Linq.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Memory.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.Http.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.NameResolution.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.NetworkInformation.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.Ping.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.Requests.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.Security.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.Sockets.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.WebHeaderCollection.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.WebSockets.Client.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.WebSockets.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Net.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Numerics.Vectors.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Numerics.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ObjectModel.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.DispatchProxy.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.Emit.ILGeneration.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.Emit.Lightweight.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.Emit.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.Extensions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Reflection.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Resources.Reader.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Resources.ResourceManager.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Resources.Writer.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.CompilerServices.VisualC.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Extensions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Handles.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.InteropServices.RuntimeInformation.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.InteropServices.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Numerics.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Serialization.Formatters.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Serialization.Json.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Serialization.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Serialization.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.Serialization.Xml.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Runtime.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Claims.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Cryptography.Algorithms.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Cryptography.Csp.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Cryptography.Encoding.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Cryptography.Primitives.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Cryptography.X509Certificates.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.Principal.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Security.SecureString.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ServiceModel.Web.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Text.Encoding.Extensions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Text.Encoding.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Text.RegularExpressions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.Overlapped.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.Tasks.Extensions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.Tasks.Parallel.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.Tasks.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.Thread.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.ThreadPool.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.Timer.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Threading.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Transactions.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.ValueTuple.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Web.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Windows.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.Linq.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.ReaderWriter.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.Serialization.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.XDocument.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.XmlDocument.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.XmlSerializer.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.XPath.XDocument.xml +NETStandard.Library.Ref/ref/netstandard2.1/System.Xml.XPath.xml diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/local.NuGet.Config b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/local.NuGet.Config new file mode 100644 index 000000000..7e093b8fb --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/local.NuGet.Config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config new file mode 100644 index 000000000..59db1a3f1 --- /dev/null +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/online.NuGet.Config @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/SourceBuild/tarball/content/smoke-test.sh b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/smoke-test.sh old mode 100755 new mode 100644 similarity index 59% rename from src/SourceBuild/tarball/content/smoke-test.sh rename to src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/smoke-test.sh index a8f6c2900..f82692071 --- a/src/SourceBuild/tarball/content/smoke-test.sh +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/smoke-tests/smoke-test.sh @@ -54,7 +54,7 @@ excludeLocalTests=false excludeOnlineTests=false excludeOmniSharpTests=${excludeOmniSharpTests:-false} devCertsVersion="$DEV_CERTS_VERSION_DEFAULT" -testingDir="$SCRIPT_ROOT/testing-smoke" +testingDir="$SCRIPT_ROOT/testing-smoke-$(date +"%m%d%H%M%S")" cliDir="$testingDir/builtCli" logsDir="$testingDir/logs" logFile="$logsDir/smoke-test.log" @@ -62,8 +62,8 @@ omnisharpLogFile="$logsDir/omnisharp.log" restoredPackagesDir="$testingDir/packages" testingHome="$testingDir/home" archiveRestoredPackages=false -archivedPackagesDir="$testingDir/smoke-test-packages" -smokeTestPrebuilts="$SCRIPT_ROOT/packages/smoke-test-packages" +smokeTestPrebuilts="$SCRIPT_ROOT/prereq-packages" +nonSbSmokeTestPrebuilts="$SCRIPT_ROOT/non-source-built-prereq-packages" runningOnline=false runningHttps=false @@ -84,10 +84,7 @@ function usage() { echo " --excludeOnlineTests exclude test that use online sources for nuget packages" echo " --excludeOmniSharpTests don't run the OmniSharp tests" echo " --devCertsVersion use dotnet-dev-certs instead of default $DEV_CERTS_VERSION_DEFAULT" - echo " --prodConBlobFeedUrl override the prodcon blob feed specified in ProdConFeed.txt, removing it if empty" - echo " --archiveRestoredPackages capture all restored packages to $archivedPackagesDir" - echo "environment:" - echo " prodConBlobFeedUrl override the prodcon blob feed specified in ProdConFeed.txt, removing it if empty" + echo " --archiveRestoredPackages capture all restored packages to $smokeTestPrebuilts" echo "" } @@ -148,10 +145,6 @@ while :; do shift devCertsVersion="$1" ;; - --prodconblobfeedurl) - shift - prodConBlobFeedUrl="$1" - ;; --archiverestoredpackages) archiveRestoredPackages=true ;; @@ -165,8 +158,6 @@ while :; do shift done -prodConBlobFeedUrl="${prodConBlobFeedUrl-}" - function doCommand() { lang=$1 proj=$2 @@ -322,16 +313,19 @@ function runAllTests() { doCommand C# console new restore build run multi-rid-publish doCommand C# classlib new restore build multi-rid-publish doCommand C# xunit new restore test + doCommand C# nunit new restore test doCommand C# mstest new restore test doCommand VB console new restore build run multi-rid-publish doCommand VB classlib new restore build multi-rid-publish doCommand VB xunit new restore test + doCommand VB nunit new restore test doCommand VB mstest new restore test doCommand F# console new restore build run multi-rid-publish doCommand F# classlib new restore build multi-rid-publish doCommand F# xunit new restore test + doCommand F# nunit new restore test doCommand F# mstest new restore test fi @@ -362,247 +356,6 @@ function runWebTests() { doCommand F# webapi "$@" new restore build run multi-rid-publish } -function runXmlDocTests() { - targetingPacksDir="$dotnetDir/packs/" - echo "Looking for xml docs in targeting packs in $targetingPacksDir" - - netstandardIgnoreList=( - Microsoft.Win32.Primitives.xml - mscorlib.xml - System.AppContext.xml - System.Buffers.xml - System.Collections.Concurrent.xml - System.Collections.NonGeneric.xml - System.Collections.Specialized.xml - System.Collections.xml - System.ComponentModel.Composition.xml - System.ComponentModel.EventBasedAsync.xml - System.ComponentModel.Primitives.xml - System.ComponentModel.TypeConverter.xml - System.ComponentModel.xml - System.Console.xml - System.Core.xml - System.Data.Common.xml - System.Data.xml - System.Diagnostics.Contracts.xml - System.Diagnostics.Debug.xml - System.Diagnostics.FileVersionInfo.xml - System.Diagnostics.Process.xml - System.Diagnostics.StackTrace.xml - System.Diagnostics.TextWriterTraceListener.xml - System.Diagnostics.Tools.xml - System.Diagnostics.TraceSource.xml - System.Diagnostics.Tracing.xml - System.Drawing.Primitives.xml - System.Drawing.xml - System.Dynamic.Runtime.xml - System.Globalization.Calendars.xml - System.Globalization.Extensions.xml - System.Globalization.xml - System.IO.Compression.FileSystem.xml - System.IO.Compression.xml - System.IO.Compression.ZipFile.xml - System.IO.FileSystem.DriveInfo.xml - System.IO.FileSystem.Primitives.xml - System.IO.FileSystem.Watcher.xml - System.IO.FileSystem.xml - System.IO.IsolatedStorage.xml - System.IO.MemoryMappedFiles.xml - System.IO.Pipes.xml - System.IO.UnmanagedMemoryStream.xml - System.IO.xml - System.Linq.Expressions.xml - System.Linq.Parallel.xml - System.Linq.Queryable.xml - System.Linq.xml - System.Memory.xml - System.Net.Http.xml - System.Net.NameResolution.xml - System.Net.NetworkInformation.xml - System.Net.Ping.xml - System.Net.Primitives.xml - System.Net.Requests.xml - System.Net.Security.xml - System.Net.Sockets.xml - System.Net.WebHeaderCollection.xml - System.Net.WebSockets.Client.xml - System.Net.WebSockets.xml - System.Net.xml - System.Numerics.Vectors.xml - System.Numerics.xml - System.ObjectModel.xml - System.Reflection.DispatchProxy.xml - System.Reflection.Emit.ILGeneration.xml - System.Reflection.Emit.Lightweight.xml - System.Reflection.Emit.xml - System.Reflection.Extensions.xml - System.Reflection.Primitives.xml - System.Reflection.xml - System.Resources.Reader.xml - System.Resources.ResourceManager.xml - System.Resources.Writer.xml - System.Runtime.CompilerServices.VisualC.xml - System.Runtime.Extensions.xml - System.Runtime.Handles.xml - System.Runtime.InteropServices.RuntimeInformation.xml - System.Runtime.InteropServices.xml - System.Runtime.Numerics.xml - System.Runtime.Serialization.Formatters.xml - System.Runtime.Serialization.Json.xml - System.Runtime.Serialization.Primitives.xml - System.Runtime.Serialization.xml - System.Runtime.Serialization.Xml.xml - System.Runtime.xml - System.Security.Claims.xml - System.Security.Cryptography.Algorithms.xml - System.Security.Cryptography.Csp.xml - System.Security.Cryptography.Encoding.xml - System.Security.Cryptography.Primitives.xml - System.Security.Cryptography.X509Certificates.xml - System.Security.Principal.xml - System.Security.SecureString.xml - System.ServiceModel.Web.xml - System.Text.Encoding.Extensions.xml - System.Text.Encoding.xml - System.Text.RegularExpressions.xml - System.Threading.Overlapped.xml - System.Threading.Tasks.Extensions.xml - System.Threading.Tasks.Parallel.xml - System.Threading.Tasks.xml - System.Threading.ThreadPool.xml - System.Threading.Thread.xml - System.Threading.Timer.xml - System.Threading.xml - System.Transactions.xml - System.ValueTuple.xml - System.Web.xml - System.Windows.xml - System.xml - System.Xml.Linq.xml - System.Xml.ReaderWriter.xml - System.Xml.Serialization.xml - System.Xml.XDocument.xml - System.Xml.xml - System.Xml.XmlDocument.xml - System.Xml.XmlSerializer.xml - System.Xml.XPath.XDocument.xml - System.Xml.XPath.xml - ) - - netcoreappIgnoreList=( - mscorlib.xml - Microsoft.VisualBasic.xml - System.AppContext.xml - System.Buffers.xml - System.ComponentModel.DataAnnotations.xml - System.Configuration.xml - System.Core.xml - System.Data.DataSetExtensions.xml - System.Data.xml - System.Diagnostics.Debug.xml - System.Diagnostics.Tools.xml - System.Drawing.xml - System.Dynamic.Runtime.xml - System.Globalization.Calendars.xml - System.Globalization.Extensions.xml - System.Globalization.xml - System.IO.Compression.Brotli.xml - System.IO.Compression.FileSystem.xml - System.IO.FileSystem.xml - System.IO.FileSystem.Primitives.xml - System.IO.UnmanagedMemoryStream.xml - System.IO.xml - System.Net.xml - System.Numerics.xml - System.Numerics.Vectors.xml - System.Reflection.Extensions.xml - System.Reflection.xml - System.Resources.Reader.xml - System.Resources.ResourceManager.xml - System.Runtime.Extensions.xml - System.Runtime.Handles.xml - System.Runtime.Serialization.xml - System.Security.Principal.xml - System.Security.SecureString.xml - System.Security.xml - System.ServiceModel.Web.xml - System.ServiceProcess.xml - System.Text.Encoding.xml - System.Text.Json.SourceGeneration.resources.xml - System.Text.Json.SourceGeneration.xml - System.Threading.Tasks.Extensions.xml - System.Threading.Tasks.xml - System.Threading.Timer.xml - System.Transactions.xml - System.ValueTuple.xml - System.Web.xml - System.Windows.xml - System.xml - System.Xml.Linq.xml - System.Xml.Serialization.xml - System.Xml.xml - System.Xml.XmlDocument.xml - WindowsBase.xml - ) - - aspnetcoreappIgnoreList=( - Microsoft.AspNetCore.App.Analyzers.xml - Microsoft.AspNetCore.App.CodeFixes.xml - Microsoft.Extensions.Logging.Generators.resources.xml - Microsoft.Extensions.Logging.Generators.xml - ) - - error=0 - while IFS= read -r -d '' dllFile; do - xmlDocFile=${dllFile%.*}.xml - skip=0 - if [[ "$xmlDocFile" == *"/packs/Microsoft.NETCore.App.Ref"* ]]; then - xmlFileBasename=$(basename "$xmlDocFile") - for ignoreItem in "${netcoreappIgnoreList[@]}"; do - if [[ "$ignoreItem" == "$xmlFileBasename" ]]; then - skip=1; - break - fi - done - fi - if [[ "$xmlDocFile" == *"/packs/NETStandard.Library.Ref"* ]]; then - xmlFileBasename=$(basename "$xmlDocFile") - for ignoreItem in "${netstandardIgnoreList[@]}"; do - if [[ "$ignoreItem" == "$xmlFileBasename" ]]; then - skip=1; - break - fi - done - fi - if [[ "$xmlDocFile" == *"/packs/Microsoft.AspNetCore.App.Ref"* ]]; then - xmlFileBasename=$(basename "$xmlDocFile") - for ignoreItem in "${aspnetcoreappIgnoreList[@]}"; do - if [[ "$ignoreItem" == "$xmlFileBasename" ]]; then - skip=1; - break - fi - done - fi - if [[ $skip == 0 ]] && [[ ! -f "$xmlDocFile" ]]; then - error=1 - echo "error: missing $xmlDocFile" - fi - - if [[ $skip == 1 ]] && [[ -f "$xmlDocFile" ]]; then - error=1 - echo "error: Ignored xml doc was found: $xmlDocFile" - fi - - done < <(find "$targetingPacksDir" -name '*.dll' -print0) - - if [[ $error != 0 ]]; then - echo "error: Missing or unexpected xml documents" - exit 1 - else - echo "All expected xml docs are present" - fi -} - function runOmniSharpTests() { dotnetCmd=${dotnetDir}/dotnet @@ -617,8 +370,7 @@ function runOmniSharpTests() { tar xf "../omnisharp-linux-x64.tar.gz" popd - # 'blazorwasm' requires prereqs (non-source-built packages) - re-enable with https://github.com/dotnet/source-build/issues/2550 - for project in blazorserver classlib console mstest mvc nunit web webapp webapi worker xunit ; do + for project in blazorwasm blazorserver classlib console mstest mvc nunit web webapp webapi worker xunit ; do mkdir hello-$project pushd hello-$project @@ -668,18 +420,10 @@ function resetCaches() { fi } -function setupProdConFeed() { - if [ "$prodConBlobFeedUrl" ]; then - sed -i.bakProdCon "s|PRODUCT_CONTRUCTION_PACKAGES|$prodConBlobFeedUrl|g" "$testingDir/NuGet.Config" - else - sed -i.bakProdCon "/PRODUCT_CONTRUCTION_PACKAGES/d" "$testingDir/NuGet.Config" - fi -} - function setupSmokeTestFeed() { # Setup smoke-test-packages if they exist - if [ -e "$smokeTestPrebuilts" ]; then - sed -i.bakSmokeTestFeed "s|SMOKE_TEST_PACKAGE_FEED|$smokeTestPrebuilts|g" "$testingDir/NuGet.Config" + if [ -e "$nonSbSmokeTestPrebuilts" ]; then + sed -i.bakSmokeTestFeed "s|SMOKE_TEST_PACKAGE_FEED|$nonSbSmokeTestPrebuilts|g" "$testingDir/NuGet.Config" else sed -i.bakSmokeTestFeed "/SMOKE_TEST_PACKAGE_FEED/d" "$testingDir/NuGet.Config" fi @@ -687,8 +431,21 @@ function setupSmokeTestFeed() { function copyRestoredPackages() { if [ "$archiveRestoredPackages" == "true" ]; then - mkdir -p "$archivedPackagesDir" - cp -rf "$restoredPackagesDir"/* "$archivedPackagesDir" + rm -rf "$smokeTestPrebuilts" + rm -rf "$nonSbSmokeTestPrebuilts" + mkdir -p "$smokeTestPrebuilts" + mkdir -p "$nonSbSmokeTestPrebuilts" + find "$restoredPackagesDir" -iname "*.nupkg" -exec mv {} "$smokeTestPrebuilts" \; + + smokeTestPackages=$(find "$smokeTestPrebuilts" -iname "*.nupkg" -type f -printf "%f\n" | tr '[A-Z]' '[a-z]' | sort) + sourceBuiltPackages=$(find "$SOURCE_BUILT_PKGS_PATH" -iname "*.nupkg" -type f -printf "%f\n" | tr '[A-Z]' '[a-z]' | sort) + + echo "Removing smoke-test prereq packages that are source built:" + comm -23 <(printf "$smokeTestPackages") <(printf "$sourceBuiltPackages") | while read line + do + echo "$line" + cp "$smokeTestPrebuilts/$line" "$nonSbSmokeTestPrebuilts" + done fi } @@ -701,11 +458,7 @@ fi # Clean up and create directory if [ -e "$testingDir" ]; then - read -p "testing-smoke directory exists, remove it? [Y]es / [n]o" -n 1 -r - echo - if [[ $REPLY == "" || $REPLY == " " || $REPLY =~ ^[Yy]$ ]]; then - rm -rf "$testingDir" - fi + rm -rf "$testingDir" fi mkdir -p "$testingDir" @@ -717,7 +470,7 @@ echo "" | tee Directory.Build.props > Directory.Build.targets # Unzip dotnet if the dotnetDir is not specified if [ "$dotnetDir" == "" ]; then - OUTPUT_DIR="$SCRIPT_ROOT/artifacts/$buildArch/$configuration/" + OUTPUT_DIR="$ARTIFACTS_DIR$buildArch/$configuration/" DOTNET_TARBALL="$(ls "${OUTPUT_DIR}${TARBALL_PREFIX}${VERSION_PREFIX}"*)" mkdir -p "$cliDir" @@ -734,38 +487,17 @@ echo SDK under test is: # setup restore path export NUGET_PACKAGES="$restoredPackagesDir" -SOURCE_BUILT_PKGS_PATH="$SCRIPT_ROOT/artifacts/obj/$buildArch/$configuration/blob-feed/packages/" +SOURCE_BUILT_PKGS_PATH="${ARTIFACTS_DIR}obj/$buildArch/$configuration/blob-feed/packages/" export DOTNET_ROOT="$dotnetDir" export PATH="$dotnetDir:$PATH" -# Run all tests, local restore sources first, online restore sources second -if [ "$excludeLocalTests" == "false" ]; then - resetCaches - runningOnline=false - # Setup NuGet.Config with local restore source - if [ -e "$SCRIPT_ROOT/smoke-testNuGet.Config" ]; then - cp "$SCRIPT_ROOT/smoke-testNuGet.Config" "$testingDir/NuGet.Config" - sed -i.bak "s|SOURCE_BUILT_PACKAGES|$SOURCE_BUILT_PKGS_PATH|g" "$testingDir/NuGet.Config" - setupProdConFeed - setupSmokeTestFeed - echo "$testingDir/NuGet.Config Contents:" - cat "$testingDir/NuGet.Config" - fi - echo "RUN ALL TESTS - LOCAL RESTORE SOURCE" - runAllTests - copyRestoredPackages - echo "LOCAL RESTORE SOURCE - ALL TESTS PASSED!" -fi - +# Run all tests, online restore sources first, local restore sources second if [ "$excludeOnlineTests" == "false" ]; then resetCaches runningOnline=true # Setup NuGet.Config to use online restore sources - if [ -e "$SCRIPT_ROOT/smoke-testNuGet.Config" ]; then - cp "$SCRIPT_ROOT/smoke-testNuGet.Config" "$testingDir/NuGet.Config" - sed -i.bak "/SOURCE_BUILT_PACKAGES/d" "$testingDir/NuGet.Config" - setupProdConFeed - setupSmokeTestFeed + if [ -e "$SCRIPT_ROOT/online.NuGet.Config" ]; then + cp "$SCRIPT_ROOT/online.NuGet.Config" "$testingDir/NuGet.Config" echo "$testingDir/NuGet.Config Contents:" cat "$testingDir/NuGet.Config" fi @@ -775,7 +507,21 @@ if [ "$excludeOnlineTests" == "false" ]; then echo "ONLINE RESTORE SOURCE - ALL TESTS PASSED!" fi -runXmlDocTests +if [ "$excludeLocalTests" == "false" ]; then + resetCaches + runningOnline=false + # Setup NuGet.Config with local restore source + if [ -e "$SCRIPT_ROOT/local.NuGet.Config" ]; then + cp "$SCRIPT_ROOT/local.NuGet.Config" "$testingDir/NuGet.Config" + sed -i.bak "s|SOURCE_BUILT_PACKAGES|$SOURCE_BUILT_PKGS_PATH|g" "$testingDir/NuGet.Config" + setupSmokeTestFeed + echo "$testingDir/NuGet.Config Contents:" + cat "$testingDir/NuGet.Config" + fi + echo "RUN ALL TESTS - LOCAL RESTORE SOURCE" + runAllTests + echo "LOCAL RESTORE SOURCE - ALL TESTS PASSED!" +fi if [ "$excludeOmniSharpTests" == "false" ]; then runOmniSharpTests diff --git a/src/SourceBuild/tarball/patches/arcade/0008-Bootstrapping-workaround.patch b/src/SourceBuild/tarball/patches/arcade/0008-Bootstrapping-workaround.patch deleted file mode 100644 index cfb166328..000000000 --- a/src/SourceBuild/tarball/patches/arcade/0008-Bootstrapping-workaround.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 1d34d8396b9c2968163802036ed102e18ef14605 Mon Sep 17 00:00:00 2001 -From: Michael Simons -Date: Fri, 10 Sep 2021 13:57:38 +0000 -Subject: [PATCH] Bootstrapping workaround - -Temporary workaround until source-build is built with recent source-built. - /repos/tarball1/src/arcade.474307e526160c813c9fd58060eb8356ccca6099/artifacts/source-build/self/src/src/Microsoft.DotNet.CodeAnalysis/Microsoft.DotNet.CodeAnalysis.csproj : error NU1603: Microsoft.CodeAnalysis.Common 4.0.0-5.21453.15 depends on System.Runtime.CompilerServices.Unsafe (>= 6.0.0-rc.1.21415.6) but System.Runtime.CompilerServices.Unsafe 6.0.0-rc.1.21415.6 was not found. An approximate best match of System.Runtime.CompilerServices.Unsafe 6.0.0-rc.2.21457.6 was resolved. [/repos/tarball1/src/arcade.474307e526160c813c9fd58060eb8356ccca6099/artifacts/source-build/self/src/Arcade.sln] - /repos/tarball1/src/arcade.474307e526160c813c9fd58060eb8356ccca6099/artifacts/source-build/self/src/src/Microsoft.DotNet.PackageTesting/Microsoft.DotNet.PackageTesting.csproj : error NU1603: Microsoft.CodeAnalysis.Common 4.0.0-5.21453.15 depends on System.Runtime.CompilerServices.Unsafe (>= 6.0.0-rc.1.21415.6) but System.Runtime.CompilerServices.Unsafe 6.0.0-rc.1.21415.6 was not found. An approximate best match of System.Runtime.CompilerServices.Unsafe 6.0.0-rc.2.21457.6 was resolved. [/repos/tarball1/src/arcade.474307e526160c813c9fd58060eb8356ccca6099/artifacts/source-build/self/src/Arcade.sln] - /repos/tarball1/src/arcade.474307e526160c813c9fd58060eb8356ccca6099/artifacts/source-build/self/src/src/Microsoft.DotNet.GenFacades/Microsoft.DotNet.GenFacades.csproj : error NU1603: Microsoft.CodeAnalysis.Common 4.0.0-5.21453.15 depends on System.Runtime.CompilerServices.Unsafe (>= 6.0.0-rc.1.21415.6) but System.Runtime.CompilerServices.Unsafe 6.0.0-rc.1.21415.6 was not found. An approximate best match of System.Runtime.CompilerServices.Unsafe 6.0.0-rc.2.21457.6 was resolved. [/repos/tarball1/src/arcade.474307e526160c813c9fd58060eb8356ccca6099/artifacts/source-build/self/src/Arcade.sln] - ---- - Directory.Build.props | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/Directory.Build.props b/Directory.Build.props -index 37feef5..c5aee85 100644 ---- a/Directory.Build.props -+++ b/Directory.Build.props -@@ -18,6 +18,10 @@ - false - - -+ -+ $(NoWarn);NU1603 -+ -+ - - +- false +- true ++ true + + - - -- 5.0.0 - - 6.0.0-preview.4.221 - -@@ -25,9 +24,9 @@ - - - -- -- -- -+ -+ -+ - - - -diff --git a/eng/Versions.props b/eng/Versions.props -index b1990aa..f6ddbbd 100644 ---- a/eng/Versions.props -+++ b/eng/Versions.props -@@ -15,6 +15,7 @@ - - 16.11.0 - 3.3.2 -+ 5.0.0 - - 4.0.0-6.21526.21 - -diff --git a/src/Logging/SimpleConsoleLogger.cs b/src/Logging/SimpleConsoleLogger.cs -index c361f84..fd8015c 100644 ---- a/src/Logging/SimpleConsoleLogger.cs -+++ b/src/Logging/SimpleConsoleLogger.cs -@@ -37,7 +37,7 @@ namespace Microsoft.CodeAnalysis.Tools.Logging - _minimalErrorLevel = minimalErrorLevel; - } - -- public void Log(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func formatter) -+ public void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) - { - if (!IsEnabled(logLevel)) - { diff --git a/src/SourceBuild/tarball/patches/format/0002-Update-system-command-line-version.patch b/src/SourceBuild/tarball/patches/format/0002-Update-system-command-line-version.patch deleted file mode 100644 index 68917950e..000000000 --- a/src/SourceBuild/tarball/patches/format/0002-Update-system-command-line-version.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Michael Simons -Date: Fri, 19 Nov 2021 13:50:52 -0600 -Subject: [PATCH] Update system-command-line version - -Backported with https://github.com/dotnet/format/pull/1436 ---- - eng/Version.Details.xml | 8 ++++---- - eng/Versions.props | 4 ++-- - src/Commands/FormatAnalyzersCommand.cs | 4 ++-- - src/Commands/FormatCommandCommon.cs | 12 ++++++------ - src/Commands/FormatStyleCommand.cs | 4 ++-- - src/Commands/RootFormatCommand.cs | 4 ++-- - 6 files changed, 18 insertions(+), 18 deletions(-) - -diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml -index 48b181b..68c0b43 100644 ---- a/eng/Version.Details.xml -+++ b/eng/Version.Details.xml -@@ -5,13 +5,13 @@ - https://github.com/dotnet/roslyn - c7d6f9fab845ffd943216da465022744e7d35f22 - -- -+ - https://github.com/dotnet/command-line-api -- 82273cb56c83b589e8e5b63da0ac9745ffc6e105 -+ 09a24a79ef01a0c70655919ee3c59bb54a8574df - -- -+ - https://github.com/dotnet/command-line-api -- 82273cb56c83b589e8e5b63da0ac9745ffc6e105 -+ 09a24a79ef01a0c70655919ee3c59bb54a8574df - - - -diff --git a/eng/Versions.props b/eng/Versions.props -index 2758207..6a02917 100644 ---- a/eng/Versions.props -+++ b/eng/Versions.props -@@ -18,8 +18,8 @@ - - 4.0.0-6.21526.21 - -- 2.0.0-beta1.21473.1 -- 0.3.0-alpha.21473.1 -+ 2.0.0-beta1.21525.1 -+ 0.3.0-alpha.21525.1 - - - -- -+ - - - -\ No newline at end of file diff --git a/src/SourceBuild/tarball/patches/linker/0003-Upgrade-Microsoft.NETFramework.ReferenceAssemblies-f.patch b/src/SourceBuild/tarball/patches/linker/0003-Upgrade-Microsoft.NETFramework.ReferenceAssemblies-f.patch deleted file mode 100644 index 8458c20e5..000000000 --- a/src/SourceBuild/tarball/patches/linker/0003-Upgrade-Microsoft.NETFramework.ReferenceAssemblies-f.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Michael Simons -Date: Wed, 20 Oct 2021 14:38:14 +0000 -Subject: [PATCH 1/2] Upgrade Microsoft.NETFramework.ReferenceAssemblies from - 1.0.0 to 1.0.2 - -Backport PR: https://github.com/dotnet/linker/pull/2326 ---- - src/ILLink.Tasks/ILLink.Tasks.csproj | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/ILLink.Tasks/ILLink.Tasks.csproj b/src/ILLink.Tasks/ILLink.Tasks.csproj -index 0ecf5d1..7501ecb 100644 ---- a/src/ILLink.Tasks/ILLink.Tasks.csproj -+++ b/src/ILLink.Tasks/ILLink.Tasks.csproj -@@ -53,6 +53,6 @@ - - - -- -+ - - diff --git a/src/SourceBuild/tarball/patches/sdk/0001-Build-Microsoft.NET.Build.Tasks-for-netfx.patch b/src/SourceBuild/tarball/patches/sdk/0001-Build-Microsoft.NET.Build.Tasks-for-netfx.patch deleted file mode 100644 index b128d21f3..000000000 --- a/src/SourceBuild/tarball/patches/sdk/0001-Build-Microsoft.NET.Build.Tasks-for-netfx.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 3540e85a194dda1e5448e0aab3212c8aeb5a1aff Mon Sep 17 00:00:00 2001 -From: Eric Erhardt -Date: Fri, 22 Oct 2021 20:48:25 +0000 -Subject: [PATCH] Build Microsoft.NET.Build.Tasks for netfx - -Required for omnisharp to work with a source-built .NET SDK. - -Patch removal issue: https://github.com/dotnet/sdk/issues/22281 ---- - .../Microsoft.DotNet.Compatibility.csproj | 1 - - .../Microsoft.DotNet.PackageValidation.csproj | 1 - - .../Microsoft.NET.Build.Extensions.Tasks.csproj | 1 - - .../Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj | 1 - - 4 files changed, 4 deletions(-) - -diff --git a/src/Compatibility/Microsoft.DotNet.Compatibility/Microsoft.DotNet.Compatibility.csproj b/src/Compatibility/Microsoft.DotNet.Compatibility/Microsoft.DotNet.Compatibility.csproj -index 92624be845..f9f8e46329 100644 ---- a/src/Compatibility/Microsoft.DotNet.Compatibility/Microsoft.DotNet.Compatibility.csproj -+++ b/src/Compatibility/Microsoft.DotNet.Compatibility/Microsoft.DotNet.Compatibility.csproj -@@ -2,7 +2,6 @@ - - - net6.0;net472 -- net6.0 - true - true - Open -diff --git a/src/Compatibility/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj b/src/Compatibility/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj -index 7a8b648652..4241f4577e 100644 ---- a/src/Compatibility/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj -+++ b/src/Compatibility/Microsoft.DotNet.PackageValidation/Microsoft.DotNet.PackageValidation.csproj -@@ -2,7 +2,6 @@ - - - net6.0;net472 -- net6.0 - Open - - -diff --git a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/Microsoft.NET.Build.Extensions.Tasks.csproj b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/Microsoft.NET.Build.Extensions.Tasks.csproj -index 13ada82225..280fbdc83e 100644 ---- a/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/Microsoft.NET.Build.Extensions.Tasks.csproj -+++ b/src/Tasks/Microsoft.NET.Build.Extensions.Tasks/Microsoft.NET.Build.Extensions.Tasks.csproj -@@ -16,7 +16,6 @@ - Library - Microsoft.NET.Build.Tasks - $(SdkTargetFramework);net472 -- $(SdkTargetFramework) - - - -diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj b/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj -index 604ef43bf2..bce39c67d4 100644 ---- a/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj -+++ b/src/Tasks/Microsoft.NET.Build.Tasks/Microsoft.NET.Build.Tasks.csproj -@@ -13,7 +13,6 @@ - The MSBuild targets and properties for building .NET Core projects. - Library - $(SdkTargetFramework);net472 -- $(SdkTargetFramework) - annotations - - --- -2.31.1 - diff --git a/src/redist/targets/BundledManifests.targets b/src/redist/targets/BundledManifests.targets index b83c642f3..6e8361d80 100644 --- a/src/redist/targets/BundledManifests.targets +++ b/src/redist/targets/BundledManifests.targets @@ -1,13 +1,13 @@ - - - - - - - - + + + + + + + + diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets index 425337024..1cf223da9 100644 --- a/src/redist/targets/GenerateBundledVersions.targets +++ b/src/redist/targets/GenerateBundledVersions.targets @@ -26,8 +26,8 @@ 30 - $([MSBuild]::Add($(VersionFeature), 21)) - $([MSBuild]::Add($(VersionFeature), 12)) + $([MSBuild]::Add($(VersionFeature), 22)) + $([MSBuild]::Add($(VersionFeature), 14)) diff --git a/src/redist/targets/GenerateLayout.targets b/src/redist/targets/GenerateLayout.targets index a26cad868..a6a968ae9 100644 --- a/src/redist/targets/GenerateLayout.targets +++ b/src/redist/targets/GenerateLayout.targets @@ -32,7 +32,7 @@ $(RedistLayoutPath)sdk\$(Version)\ true - https://dotnetclimsrc.blob.core.windows.net/dotnet/ + https://dotnetbuilds.blob.core.windows.net/internal/ https://dotnetcli.blob.core.windows.net/dotnet/