From 193cf8f8c1d5d96f26cfeaec72f4b057c961f84c Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Thu, 1 Nov 2018 09:27:36 -0700 Subject: [PATCH 1/8] Updating submodule(s) EntityFrameworkCore => d5745f8b895de2c9f7636ecded35d387e2ff4d7b [auto-updated: submodules] --- modules/EntityFrameworkCore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/EntityFrameworkCore b/modules/EntityFrameworkCore index f6457bccd2..d5745f8b89 160000 --- a/modules/EntityFrameworkCore +++ b/modules/EntityFrameworkCore @@ -1 +1 @@ -Subproject commit f6457bccd2bf7ac791e46935dd60110204fdbbee +Subproject commit d5745f8b895de2c9f7636ecded35d387e2ff4d7b From 83fe4c089b22a500debc33bed758e2d9d2d8f64b Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Thu, 1 Nov 2018 11:30:31 -0700 Subject: [PATCH 2/8] Remove M.A.Server.IIS package from 2.1. Fix signing issues (#3859) --- build/artifacts.props | 1 - src/IISIntegration/IISIntegration.sln | 15 ----- src/IISIntegration/build/repo.targets | 18 ------ .../Microsoft.AspNetCore.Server.IIS.csproj | 56 ------------------- .../Microsoft.AspNetCore.Server.IIS.nuspec | 32 ----------- .../Microsoft.AspNetCore.Server.IIS.targets | 9 --- .../src/Microsoft.AspNetCore.Server.IIS/_._ | 0 7 files changed, 131 deletions(-) delete mode 100644 src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.csproj delete mode 100644 src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.nuspec delete mode 100644 src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.targets delete mode 100644 src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/_._ diff --git a/build/artifacts.props b/build/artifacts.props index a3fe35515b..39b35505e6 100644 --- a/build/artifacts.props +++ b/build/artifacts.props @@ -135,7 +135,6 @@ - diff --git a/src/IISIntegration/IISIntegration.sln b/src/IISIntegration/IISIntegration.sln index 50d11124bc..15788f0273 100644 --- a/src/IISIntegration/IISIntegration.sln +++ b/src/IISIntegration/IISIntegration.sln @@ -60,8 +60,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InProcessWebSite", "test\We {439824F9-1455-4CC4-BD79-B44FA0A16552} = {439824F9-1455-4CC4-BD79-B44FA0A16552} EndProjectSection EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IIS", "src\Microsoft.AspNetCore.Server.IIS\Microsoft.AspNetCore.Server.IIS.csproj", "{46A8612B-418B-4D70-B3A7-A21DD0627473}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StressTestWebSite", "test\WebSites\StressTestWebSite\StressTestWebSite.csproj", "{13FD8F12-FFBE-4D01-B4AC-444F2994B04F}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestTasks", "test\TestTasks\TestTasks.csproj", "{064D860B-4D7C-4B1D-918F-E020F1B99E2A}" @@ -180,18 +178,6 @@ Global {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x64.Build.0 = Release|x64 {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x86.ActiveCfg = Release|x86 {679FA2A2-898B-4320-884E-C2D294A97CE1}.Release|x86.Build.0 = Release|x86 - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|Any CPU.Build.0 = Debug|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|x64.ActiveCfg = Debug|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|x64.Build.0 = Debug|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|x86.ActiveCfg = Debug|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Debug|x86.Build.0 = Debug|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|Any CPU.ActiveCfg = Release|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|Any CPU.Build.0 = Release|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x64.ActiveCfg = Release|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x64.Build.0 = Release|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x86.ActiveCfg = Release|Any CPU - {46A8612B-418B-4D70-B3A7-A21DD0627473}.Release|x86.Build.0 = Release|Any CPU {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|Any CPU.ActiveCfg = Debug|x86 {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|x64.ActiveCfg = Debug|x64 {13FD8F12-FFBE-4D01-B4AC-444F2994B04F}.Debug|x64.Build.0 = Debug|x64 @@ -296,7 +282,6 @@ Global {4E3E1F5C-CD52-4CC0-A35F-D1FA1685D2FA} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {9BC4AFCB-325D-4C81-8228-8CF301CE2F97} = {C74B8F36-FD2F-45C9-9B8A-00E7CF0126A9} {679FA2A2-898B-4320-884E-C2D294A97CE1} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} - {46A8612B-418B-4D70-B3A7-A21DD0627473} = {04B1EDB6-E967-4D25-89B9-E6F8304038CD} {13FD8F12-FFBE-4D01-B4AC-444F2994B04F} = {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} {064D860B-4D7C-4B1D-918F-E020F1B99E2A} = {EF30B533-D715-421A-92B7-92FEF460AC9C} {744ACDC6-F6A0-4FF9-9421-F25C5F2DC520} = {EF30B533-D715-421A-92B7-92FEF460AC9C} diff --git a/src/IISIntegration/build/repo.targets b/src/IISIntegration/build/repo.targets index c39d7367c5..97753f2424 100644 --- a/src/IISIntegration/build/repo.targets +++ b/src/IISIntegration/build/repo.targets @@ -42,21 +42,7 @@ $(PackageVersion) $(RepositoryRoot) - - - ZipArchive - $(RepositoryRoot) - shipoob - - - - - - - - - @@ -93,10 +79,6 @@ - diff --git a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.csproj b/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.csproj deleted file mode 100644 index 51cc16d958..0000000000 --- a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.csproj +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - netcoreapp2.1 - Microsoft.AspNetCore.Server.IIS - Provides support for hosting ASP.NET Core in IIS using the AspNetCoreModule. - false - false - false - false - false - true - $(PackageId).nuspec - true - - - - - - - - - - - - - - - id=$(PackageId); - tfm=$(TargetFramework); - tfmGroup=$(TargetFrameworkIdentifier)$(_TargetFrameworkVersionWithoutV); - configuration=$(Configuration); - copyright=$(Copyright); - author=$(Authors); - licenseUrl=$(PackageLicenseUrl); - iconUrl=$(PackageIconUrl); - projectUrl=$(PackageProjectUrl); - repositoryUrl=$(RepositoryUrl); - repositoryType=$(RepositoryType); - repositoryCommit=$(RepositoryCommit); - version=$(PackageVersion); - description=$(Description); - serviceable=$([MSBuild]::ValueOrDefault('$(Serviceable)', 'false')); - - - - - - - - - - - diff --git a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.nuspec b/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.nuspec deleted file mode 100644 index 3124aad25f..0000000000 --- a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.nuspec +++ /dev/null @@ -1,32 +0,0 @@ - - - - Microsoft.AspNetCore.Server.IIS - $version$ - $author$ - $licenseUrl$ - $copyright$ - $projectUrl$ - $iconUrl$ - true - $description$ - en-US - aspnetcore iis - $serviceable$ - - - - - - - - - - - - - - - - - diff --git a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.targets b/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.targets deleted file mode 100644 index fe0dbb05d5..0000000000 --- a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/Microsoft.AspNetCore.Server.IIS.targets +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - diff --git a/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/_._ b/src/IISIntegration/src/Microsoft.AspNetCore.Server.IIS/_._ deleted file mode 100644 index e69de29bb2..0000000000 From 7842a73986981c3c24f5dafe7ff96909f307790f Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Thu, 1 Nov 2018 14:42:59 -0700 Subject: [PATCH 3/8] Updating submodule(s) ServerTests => 019ba1722e9d100fc54f8ab60f12ac4f1b795f0b [auto-updated: submodules] --- modules/ServerTests | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ServerTests b/modules/ServerTests index 6ed63da79c..019ba1722e 160000 --- a/modules/ServerTests +++ b/modules/ServerTests @@ -1 +1 @@ -Subproject commit 6ed63da79c1605b06e69c7f3976db4db99db8e2c +Subproject commit 019ba1722e9d100fc54f8ab60f12ac4f1b795f0b From dcece2090cb149c547ae34e81d9203e8e04d68fd Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Fri, 2 Nov 2018 14:34:31 -0700 Subject: [PATCH 4/8] Remove IISIntegration submodule, add CI (#3867) --- .azure/pipelines/fast-pr-validation.yml | 26 ++-- .azure/pipelines/jobs/default-build.yml | 147 ++++++++++++++++++ .azure/pipelines/jobs/iisintegration-job.yml | 20 +++ .azure/pipelines/project-ci.yml | 60 +++++++ .gitmodules | 4 - build/buildorder.props | 2 +- build/submodules.props | 2 +- modules/IISIntegration | 1 - .../tools/SetupTestEnvironment.ps1 | 135 ++++++++++++++++ .../tools/UpdateIISExpressCertificate.ps1 | 20 +++ 10 files changed, 395 insertions(+), 22 deletions(-) create mode 100644 .azure/pipelines/jobs/default-build.yml create mode 100644 .azure/pipelines/jobs/iisintegration-job.yml create mode 100644 .azure/pipelines/project-ci.yml delete mode 160000 modules/IISIntegration create mode 100644 src/IISIntegration/tools/SetupTestEnvironment.ps1 create mode 100644 src/IISIntegration/tools/UpdateIISExpressCertificate.ps1 diff --git a/.azure/pipelines/fast-pr-validation.yml b/.azure/pipelines/fast-pr-validation.yml index 6857144c97..c88e0a520a 100644 --- a/.azure/pipelines/fast-pr-validation.yml +++ b/.azure/pipelines/fast-pr-validation.yml @@ -2,23 +2,15 @@ trigger: - master - release/* -# See https://github.com/aspnet/BuildTools -resources: - repositories: - - repository: buildtools - type: github - endpoint: DotNet-Bot GitHub Connection - name: aspnet/BuildTools - ref: refs/heads/release/2.1 - -phases: -- template: .vsts-pipelines/templates/project-ci.yml@buildtools +jobs: +- template: project-ci.yml parameters: buildArgs: "/t:FastCheck" -- phase: RepoBuilds - queue: - name: Hosted VS2017 - parallel: 2 +- job: RepoBuilds + pool: + vmImage: vs2017-win2016 + strategy: + maxParallel: 3 matrix: DataProtection: _FolderName: DataProtection @@ -33,3 +25,7 @@ phases: inputs: testRunner: vstest testResultsFiles: 'src/$(_FolderName)/artifacts/logs/**/*.trx' +- template: jobs/iisintegration-job.yml + parameters: + variables: + _FolderName: IISIntegration diff --git a/.azure/pipelines/jobs/default-build.yml b/.azure/pipelines/jobs/default-build.yml new file mode 100644 index 0000000000..d39a7e1e22 --- /dev/null +++ b/.azure/pipelines/jobs/default-build.yml @@ -0,0 +1,147 @@ +# default-build.yml +# Description: Defines a build phase for invoking build.sh/cmd +# Parameters: +# jobName: string +# The name of the job. Defaults to the name of the OS. No spaces allowed +# jobDisplayName: string +# The friendly job name to display in the UI. Defaults to the name of the OS. +# poolName: string +# The name of the VSTS agent queue to use. +# agentOs: string +# Used in templates to define variables which are OS specific. Typically from the set { Windows, Linux, macOS } +# buildArgs: string +# Additional arguments to pass to the build.sh/cmd script. +# Note: -ci is always passed +# beforeBuild: [steps] +# Additional steps to run before build.sh/cmd +# afterBuild: [steps] +# Additional steps to run after build.sh/cmd +# artifacts: +# publish: boolean +# Should artifacts be published +# path: string +# The file path to artifacts output +# name: string +# The name of the artifact container +# variables: { string: string } +# A map of custom variables +# matrix: { string: { string: string } } +# A map of matrix configurations and variables. https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema?view=vsts#matrix +# demands: string | [ string ] +# A list of agent demands. https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema?view=vsts#demands +# dependsOn: string | [ string ] +# For fan-out/fan-in. https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema?view=vsts#phase +# codeSign: boolean +# This build definition is enabled for code signing. (Only applies to Windows) +# buildDirectory: string +# Specifies what directory to run build.sh/cmd + +# +# See https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema for details +# + +parameters: + agentOs: 'Windows' + poolName: '' + buildArgs: '' + configuration: 'Release' + demands: [] + beforeBuild: [] + afterBuild: [] + codeSign: false + variables: {} + dependsOn: '' + # jobName: '' - use agentOs by default. + # jobDisplayName: '' - use agentOs by default. + # matrix: {} - don't define an empty object default because there is no way in template expression yet to check "if isEmpty(parameters.matrix)" + artifacts: + publish: true + path: 'artifacts/' + buildDirectory: '' + +jobs: +- job: ${{ coalesce(parameters.jobName, parameters.agentOs) }} + displayName: ${{ coalesce(parameters.jobDisplayName, parameters.agentOs) }} + dependsOn: ${{ parameters.dependsOn }} + workspace: + clean: all + strategy: + ${{ if ne(parameters.matrix, '') }}: + maxParallel: 8 + matrix: ${{ parameters.matrix }} + # Map friendly OS names to the right queue + pool: + ${{ if ne(parameters.poolName, '') }}: + name: ${{ parameters.poolName }} + ${{ if and(eq(parameters.poolName, ''), eq(parameters.agentOs, 'macOS')) }}: + name: Hosted macOS + vmImage: macOS-10.13 + ${{ if and(eq(parameters.poolName, ''), eq(parameters.agentOs, 'Linux')) }}: + name: Hosted Ubuntu 1604 + vmImage: ubuntu-16.04 + ${{ if and(eq(parameters.poolName, ''), eq(parameters.agentOs, 'Windows')) }}: + ${{ if ne(parameters.codeSign, 'true') }}: + name: Hosted VS2017 + vmImage: vs2017-win2016 + ${{ if eq(parameters.codeSign, 'true') }}: + name: DotNetCore-Windows + variables: + AgentOsName: ${{ parameters.agentOs }} + ASPNETCORE_TEST_LOG_MAXPATH: "200" # Keep test log file name length low enough for artifact zipping + DOTNET_HOME: $(Agent.WorkFolder)/.dotnet + BuildScriptArgs: ${{ parameters.buildArgs }} + BuildConfiguration: ${{ parameters.configuration }} + BuildDirectory: ${{ parameters.buildDirectory }} + VSTS_OVERWRITE_TEMP: false # Workaround for https://github.com/dotnet/core-eng/issues/2812 + ${{ if eq(parameters.codeSign, 'true') }}: + TeamName: AspNetCore + _SignType: real + ${{ if ne(parameters.codeSign, 'true') }}: + _SignType: + ${{ insert }}: ${{ parameters.variables }} + steps: + - checkout: self + clean: true + - ${{ if and(eq(parameters.agentOs, 'Windows'), eq(parameters.codeSign, 'true')) }}: + - task: MicroBuildSigningPlugin@1 + displayName: Install MicroBuild Signing plugin + condition: and(succeeded(), in(variables['_SignType'], 'test', 'real')) + inputs: + signType: $(_SignType) + zipSources: false + - ${{ parameters.beforeBuild }} + - ${{ if eq(parameters.agentOs, 'Windows') }}: + - script: .\$(BuildDirectory)\build.cmd -ci /p:SignType=$(_SignType) /p:Configuration=$(BuildConfiguration) $(BuildScriptArgs) + displayName: Run build.cmd + - ${{ if ne(parameters.agentOs, 'Windows') }}: + - script: ./$(BuildDirectory)/build.sh -ci -p:Configuration=$(BuildConfiguration) $(BuildScriptArgs) + displayName: Run build.sh + - task: PublishTestResults@2 + displayName: Publish test results + condition: always() + inputs: + testRunTitle: $(AgentOsName)-$(BuildConfiguration) + testRunner: vstest + testResultsFiles: 'artifacts/logs/**/*.trx' + mergeTestResults: true + - ${{ if eq(parameters.artifacts.publish, 'true') }}: + - task: PublishBuildArtifacts@1 + displayName: Upload artifacts + condition: eq(variables['system.pullrequest.isfork'], false) + inputs: + ${{ if eq(parameters.buildDirectory, '') }}: + pathtoPublish: ${{ parameters.artifacts.path }} + ${{ if ne(parameters.artifacts.name, '') }}: + pathtoPublish: ${{ parameters.buildDirectory }}\${{ parameters.artifacts.path }} + ${{ if eq(parameters.artifacts.name, '') }}: + artifactName: artifacts-$(AgentOsName)-$(BuildConfiguration) + ${{ if ne(parameters.artifacts.name, '') }}: + artifactName: ${{ parameters.artifacts.name }} + artifactType: Container + parallel: true + - ${{ parameters.afterBuild }} + - ${{ if and(eq(parameters.agentOs, 'Windows'), eq(parameters.codeSign, 'true')) }}: + - task: MicroBuildCleanup@1 + displayName: Cleanup MicroBuild tasks + condition: always() + diff --git a/.azure/pipelines/jobs/iisintegration-job.yml b/.azure/pipelines/jobs/iisintegration-job.yml new file mode 100644 index 0000000000..14c40ebb44 --- /dev/null +++ b/.azure/pipelines/jobs/iisintegration-job.yml @@ -0,0 +1,20 @@ +jobs: +- template: default-build.yml + parameters: + jobName: 'IISIntegration' + jobDisplayName: 'IISIntegration' + beforeBuild: + - powershell: "& ./src/IISIntegration/tools/UpdateIISExpressCertificate.ps1; & ./src/IISIntegration/tools/SetupTestEnvironment.ps1 Setup" + displayName: Prepare repo + afterBuild: + - powershell: "& ./src/IISIntegration/tools/SetupTestEnvironment.ps1 Shutdown" + displayName: Stop AppVerifier + condition: always() + - task: PublishBuildArtifacts@1 + displayName: Upload logs + condition: eq(variables['system.pullrequest.isfork'], false) + inputs: + artifactName: logs + artifactType: Container + pathtoPublish: src/IISIntegration/artifacts/logs + buildDirectory: src/IISIntegration diff --git a/.azure/pipelines/project-ci.yml b/.azure/pipelines/project-ci.yml new file mode 100644 index 0000000000..0fc6147fb6 --- /dev/null +++ b/.azure/pipelines/project-ci.yml @@ -0,0 +1,60 @@ +# Description: Runs build.cmd/sh on macOS, Linux, and Windows +# Parameters: +# buildArgs: string +# Additional arguments to pass to the build.sh/cmd script. +# Note: -ci is always passed +# beforeBuild: [steps] +# Additional steps to run before build.sh/cmd +# afterBuild: [steps] +# Additional steps to run after build.sh/cmd +# variables: {} +# VSTS build and environment variables +# matrix: {} +# The matrix of configurations to run. By default, it runs a Debug and Release build on all platforms +# codeSign: boolean +# This build definition is enabled for code signing. (Only applies to Windows) +# buildDirectory: string +# Specifies what directory to run build.sh/cmd + +parameters: + buildArgs: '' + beforeBuild: [] + afterBuild: [] + codeSign: false + variables: {} + matrix: + Release: + BuildConfiguration: Release + Debug: + BuildConfiguration: Debug + buildDirectory: '' + +jobs: +- template: jobs/default-build.yml + parameters: + agentOs: Windows + matrix: ${{ parameters.matrix }} + buildArgs: ${{ parameters.buildArgs }} + beforeBuild: ${{ parameters.beforeBuild }} + afterBuild: ${{ parameters.afterBuild }} + codeSign: ${{ parameters.codeSign }} + variables: ${{ parameters.variables }} + buildDirectory: ${{ parameters.buildDirectory }} +- template: jobs/default-build.yml + parameters: + agentOs: macOS + matrix: ${{ parameters.matrix }} + buildArgs: ${{ parameters.buildArgs }} + beforeBuild: ${{ parameters.beforeBuild }} + afterBuild: ${{ parameters.afterBuild }} + variables: ${{ parameters.variables }} + buildDirectory: ${{ parameters.buildDirectory }} +- template: jobs/default-build.yml + parameters: + agentOs: Linux + matrix: ${{ parameters.matrix }} + buildArgs: ${{ parameters.buildArgs }} + beforeBuild: ${{ parameters.beforeBuild }} + afterBuild: ${{ parameters.afterBuild }} + variables: ${{ parameters.variables }} + buildDirectory: ${{ parameters.buildDirectory }} \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index a7b7a1490f..e8c4effa7e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -86,10 +86,6 @@ path = modules/Identity url = https://github.com/aspnet/Identity.git branch = release/2.1 -[submodule "modules/IISIntegration"] - path = modules/IISIntegration - url = https://github.com/aspnet/IISIntegration.git - branch = release/2.1 [submodule "modules/JavaScriptServices"] path = modules/JavaScriptServices url = https://github.com/aspnet/JavaScriptServices.git diff --git a/build/buildorder.props b/build/buildorder.props index a7878801c8..fdc4e89b0f 100644 --- a/build/buildorder.props +++ b/build/buildorder.props @@ -30,7 +30,7 @@ - + diff --git a/build/submodules.props b/build/submodules.props index 3bbb275279..086b29a461 100644 --- a/build/submodules.props +++ b/build/submodules.props @@ -69,7 +69,7 @@ - + diff --git a/modules/IISIntegration b/modules/IISIntegration deleted file mode 160000 index b5ff991eb9..0000000000 --- a/modules/IISIntegration +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b5ff991eb95c71915aff1eb6283388dc02e9c67e diff --git a/src/IISIntegration/tools/SetupTestEnvironment.ps1 b/src/IISIntegration/tools/SetupTestEnvironment.ps1 new file mode 100644 index 0000000000..3adaf79045 --- /dev/null +++ b/src/IISIntegration/tools/SetupTestEnvironment.ps1 @@ -0,0 +1,135 @@ +param($Mode) + +$DumpFolder = "$env:ASPNETCORE_TEST_LOG_DIR\dumps" +if (!($DumpFolder)) +{ + $DumpFolder = "$PSScriptRoot\..\artifacts\dumps" +} +if (!(Test-Path $DumpFolder)) +{ + New-Item $DumpFolder -ItemType Directory; +} +$DumpFolder = Resolve-Path $DumpFolder + +$LogsFolder = "$PSScriptRoot\..\artifacts\logs" +if (!(Test-Path $LogsFolder)) +{ + New-Item $LogsFolder -ItemType Directory; +} +$LogsFolder = Resolve-Path $LogsFolder + +$werHive = "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting"; +$ldHive = "$werHive\LocalDumps"; + + +function Setup-appverif($application) +{ + appverif.exe -enable Exceptions Handles Heaps Leak Locks Memory Threadpool TLS SRWLock -for $application + $level = 0x1E1; + $codes = @( + # Exceptions + 0x650, + # Handles + 0x300, 0x301, 0x302, 0x303, 0x304, # 0x305, + # Heaps + 0x001, 0x002, 0x003, 0x004, 0x005, 0x006, 0x007, 0x008, 0x009, 0x00A, 0x00B, 0x00C, 0x00D, 0x00E, 0x00F, 0x010, 0x011, 0x012, 0x013, 0x014, + # Leak + 0x900, 0x901, 0x902, 0x903, 0x904, 0x905, 0x906, + # Locks + 0x200, 0x201, 0x202, 0x203, 0x204, 0x205, 0x206, 0x207, 0x208, 0x209, 0x210, 0x211, 0x212, 0x213, 0x214, 0x215, + # Memory + 0x600, 0x601, 0x602, 0x603, 0x604, 0x605, 0x606, 0x607, 0x608, 0x609, 0x60A, 0x60B, 0x60C, 0x60D, 0x60E, 0x60F, 0x610, 0x612, 0x613, 0x614, 0x615, 0x616, 0x617, 0x618, 0x619, 0x61A, 0x61B, 0x61C, 0x61D, 0x61E, + # SRWLock + 0x250, 0x251, 0x252, 0x253, 0x254, 0x255, 0x256, 0x257, + # TSL + 0x350, 0x351, 0x352, + # ThreadPool + 0x700, 0x701, 0x702, 0x703, 0x704, 0x705, 0x706, 0x707, 0x708, 0x709, 0x70A, 0x70B, 0x70C, 0x70D + ); + + setx APPVERIFIER_ENABLED_CODES "$codes"; + setx APPVERIFIER_LEVEL $level; + appverif.exe -configure $codes -for $application -with ErrorReport=$level + + # 0x305, - disabled because coreclr.dll!SetThreadName(void *) ofthen passes invalid handle (0xffffff) + appverif.exe -configure 0x305 -for $application -with ErrorReport=0 +} + +function Shutdown-appverif($application) +{ + setx APPVERIFIER_ENABLED_CODES "NONE"; + setx APPVERIFIER_LEVEL "NONE"; + + appverif.exe -disable * -for $application +} + +function Setup-Dumps() +{ + if (!(Test-Path $ldHive )) + { + New-Item -Path $werHive -Name LocalDumps + } + + Move-Item $env:windir\System32\vsjitdebugger.exe $env:windir\System32\_vsjitdebugger.exe; + + New-ItemProperty $werHive -Name "DontShowUI" -Value 1 -PropertyType "DWORD" -Force; + + New-ItemProperty $ldHive -Name "DumpFolder" -Value $DumpFolder -PropertyType "ExpandString" -Force; + New-ItemProperty $ldHive -Name "DumpCount" -Value 15 -PropertyType "DWORD" -Force; + New-ItemProperty $ldHive -Name "DumpType" -Value 2 -PropertyType "DWORD" -Force; + + Restart-Service WerSvc +} + +function Shutdown-Dumps() +{ + Move-Item $env:windir\System32\_vsjitdebugger.exe $env:windir\System32\vsjitdebugger.exe; + + Remove-Item $ldHive -Recurse -Force + + New-ItemProperty $werHive -Name "DontShowUI" -Value 0 -PropertyType "DWORD" -Force; + + $cdb = "c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\cdb.exe" + if (!(Test-Path $cdb)) + { + $downloadedFile = [System.IO.Path]::GetTempFileName(); + $downloadedFile = "$downloadedFile.exe"; + Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/p/?linkid=870807" -OutFile $downloadedFile; + & $downloadedFile /features OptionId.WindowsDesktopDebuggers /norestart /q; + } + + foreach ($dump in (Get-ChildItem -Path $DumpFolder -Filter "*.dmp")) + { + if (Test-Path $cdb) + { + & $cdb -z $dump.FullName -y "https://msdl.microsoft.com/download/symbols" -c ".loadby sos coreclr;!sym noisy;.reload /f;.dumpcab -a $($dump.FullName).cab;q;" + Remove-Item $dump.FullName + } + } +} + +if ($Mode -eq "Setup") +{ + Setup-appverif w3wp.exe + Setup-appverif iisexpress.exe + + Setup-Dumps; +} + +if ($Mode -eq "SetupDumps") +{ + Shutdown-appverif w3wp.exe + Shutdown-appverif iisexpress.exe + + Setup-Dumps; +} + +if ($Mode -eq "Shutdown") +{ + Shutdown-appverif w3wp.exe + Shutdown-appverif iisexpress.exe + + Shutdown-Dumps; +} + +Exit 0; \ No newline at end of file diff --git a/src/IISIntegration/tools/UpdateIISExpressCertificate.ps1 b/src/IISIntegration/tools/UpdateIISExpressCertificate.ps1 new file mode 100644 index 0000000000..9034cf8f75 --- /dev/null +++ b/src/IISIntegration/tools/UpdateIISExpressCertificate.ps1 @@ -0,0 +1,20 @@ +$cert = New-SelfSignedCertificate -DnsName "localhost", "localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) +$thumb = $cert.GetCertHashString() + +$Store = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Store -ArgumentList 'root', 'LocalMachine' +$Store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite) +$Store.Add($cert) +$Store.Close() + +$tempFile = [System.IO.Path]::GetTempFileName(); +$content = ""; + +for ($i=44300; $i -le 44399; $i++) { + $content += "http delete sslcert ipport=0.0.0.0:$i`n"; + $content += "http add sslcert ipport=0.0.0.0:$i certhash=$thumb appid=`{214124cd-d05b-4309-9af9-9caa44b2b74a`}`n"; +} + +[IO.File]::WriteAllLines($tempFile, $content) + +netsh -f $tempFile +Remove-Item $tempFile; \ No newline at end of file From 10f415bb55fac07523e7a996493ec53758775526 Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Sun, 4 Nov 2018 11:46:42 -0800 Subject: [PATCH 5/8] Updating BuildTools from 2.1.3-rtm-15836 to 2.1.3-rtm-15837 [auto-updated: buildtools] --- korebuild-lock.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/korebuild-lock.txt b/korebuild-lock.txt index b33a8b5418..6936dcd462 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.3-rtm-15836 -commithash:cde3cdd1b7a51ca65b3ff65ae1b031f5c2071ac9 +version:2.1.3-rtm-15837 +commithash:ea9605662c50d2020bd3ac065e9465254f5e7ed8 From dc240c52f92a7f1f7761060f48f1c0d299b2fe0a Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Sun, 4 Nov 2018 14:50:26 -0800 Subject: [PATCH 6/8] Updating BuildTools from 2.1.3-rtm-15837 to 2.1.3-rtm-15838 [auto-updated: buildtools] --- korebuild-lock.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/korebuild-lock.txt b/korebuild-lock.txt index 6936dcd462..d3acb4381e 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.3-rtm-15837 -commithash:ea9605662c50d2020bd3ac065e9465254f5e7ed8 +version:2.1.3-rtm-15838 +commithash:f6c9771bd20a97521469faf6d381ed45e4557b24 From 8558942d970d8eb4584b374ba20740c652d98b1f Mon Sep 17 00:00:00 2001 From: "ASP.NET CI" Date: Mon, 5 Nov 2018 16:14:04 -0800 Subject: [PATCH 7/8] Updating BuildTools from 2.1.3-rtm-15838 to 2.1.3-rtm-15839 [auto-updated: buildtools] --- korebuild-lock.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/korebuild-lock.txt b/korebuild-lock.txt index d3acb4381e..bf511bf4d6 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.3-rtm-15838 -commithash:f6c9771bd20a97521469faf6d381ed45e4557b24 +version:2.1.3-rtm-15839 +commithash:ee0ad5bd4ede948c6954704b621acc0c83445e5d From 17cccade43eb6a1ddb1ca29063c8794392dac5ff Mon Sep 17 00:00:00 2001 From: Nate McMaster Date: Tue, 6 Nov 2018 09:06:10 -0800 Subject: [PATCH 8/8] Add IsFinalBuild switch to Windows installer script (#3892) --- src/Installers/Windows/build.ps1 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Installers/Windows/build.ps1 b/src/Installers/Windows/build.ps1 index c6493b84c2..f8df1c7192 100644 --- a/src/Installers/Windows/build.ps1 +++ b/src/Installers/Windows/build.ps1 @@ -13,6 +13,7 @@ param( [Alias("x64")] [string]$Runtime64Zip, [string]$BuildNumber = 't000', + [switch]$IsFinalBuild, [string]$SignType = '', [string]$PackageVersionPropsUrl = $null, [string]$AccessTokenSuffix = $null, @@ -89,6 +90,7 @@ try { "-p:Configuration=$Configuration" ` "-p:BuildNumber=$BuildNumber" ` "-p:SignType=$SignType" ` + "-p:IsFinalBuild=$IsFinalBuild" ` "-bl:$repoRoot/artifacts/logs/installers.msbuild.binlog" ` @msbuildArgs }