diff --git a/.azure/pipelines/benchmarks.yml b/.azure/pipelines/benchmarks.yml
index 367526a4c73d..6e319f80da88 100644
--- a/.azure/pipelines/benchmarks.yml
+++ b/.azure/pipelines/benchmarks.yml
@@ -9,8 +9,7 @@ jobs:
jobName: Windows_Build
jobDisplayName: "Build only : Windows"
agentOs: Windows
- buildArgs: -all -pack
+ buildArgs: -ci -all -pack
artifacts:
- path: artifacts/
- publish: true
- force: true
+ - path: artifacts/
+ includeForks: true
diff --git a/.azure/pipelines/ci-official.yml b/.azure/pipelines/ci-official.yml
deleted file mode 100644
index 4c268252e64a..000000000000
--- a/.azure/pipelines/ci-official.yml
+++ /dev/null
@@ -1,222 +0,0 @@
-trigger:
- branches:
- include:
- - master
- - release/*
- exclude:
- - release/2.0
-
-name: $(Date:yyMMdd)-$(Rev:rr)
-
-phases:
-- phase: Windows
- queue:
- name: DotNetCore-Windows
- timeoutInMinutes: 120
- matrix:
- Release:
- BuildConfiguration: Release
- variables:
- CI: true
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
-
- # This variable is required by MicroBuildSigningPlugin to determine permissions for codesigning.
- TeamName: AspNetCore
-
- # SignType = { test, real }
- # This is prefixed underscore because variables automatically become environment variables (and therefore MSBuild properties),
- # and this one was causing issues in MSBuild projects which use the $(SignType) MSbuild prop.
- _SignType: real
-
- steps:
- - task: NodeTool@0
- displayName: Install Node 10.x
- inputs:
- versionSpec: 10.x
- - task: MicroBuildSigningPlugin@1
- displayName: Install MicroBuild plugin
- condition: and(succeeded(), in(variables['_SignType'], 'test', 'real'))
- inputs:
- signType: $(_SignType)
- zipSources: false
- # TODO: configure build.cmd to build both x64 and x86 in one invocation
- - script: build.cmd -ci /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:Build /t:BuildSharedFx /p:SharedFxRID=win-x64 /t:BuildFallbackArchive
- displayName: Build NuGet packages and win-x64 runtime
- - script: build.cmd -ci /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:BuildSharedFx /p:SharedFxRID=win-x86
- displayName: Build win-x86 runtime
- - script: build.cmd -ci /p:SkipTests=true /p:Configuration=$(BuildConfiguration) /p:BuildNumber=$(Build.BuildNumber) /t:BuildSharedFx /p:SharedFxRID=win-arm
- displayName: Build win-arm runtime
- - powershell: >
- src/Installers/Windows/clone_and_build_ancm.ps1
- -GitCredential '$(dn-bot-devdiv-build-rw-code-rw)'
- -Config $(BuildConfiguration)
- -BuildNumber $(Build.BuildNumber)
- -SignType $(_SignType)
- displayName: Build ANCM installers
- # TODO: configure harvesting to run as a part of build.cmd
- - powershell: >
- src/Installers/Windows/build.ps1
- -x64 artifacts/runtime/aspnetcore-runtime-internal-3.0.0-alpha1-$(Build.BuildNumber)-win-x64.zip
- -x86 artifacts/runtime/aspnetcore-runtime-internal-3.0.0-alpha1-$(Build.BuildNumber)-win-x86.zip
- -Config $(BuildConfiguration)
- -BuildNumber $(Build.BuildNumber)
- -SignType $(_SignType)
- displayName: Build Windows installers
- - task: PublishTestResults@2
- displayName: Publish test results
- condition: always()
- inputs:
- testRunner: vstest
- testResultsFiles: 'artifacts/logs/**/*.trx'
- - task: PublishBuildArtifacts@1
- displayName: Upload artifacts
- condition: eq(variables['system.pullrequest.isfork'], false)
- inputs:
- pathtoPublish: ./artifacts/
- artifactName: artifacts-Windows-Release
- artifactType: Container
- # Detect OSS Components in use in the product. Only needs to run on one OS in the matrix.
- - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection'
- inputs:
- # This funky GUID represents the product "ASP.NET and EF Core"
- governanceProduct: 'c641993b-8380-e811-80c3-0004ffb4789e'
- snapshotForceEnabled: true
- - task: MicroBuildCleanup@1
- displayName: Cleanup MicroBuild tasks
- condition: always()
-
-- phase: macOS
- dependsOn: Windows
- queue:
- name: Hosted macOS Preview
- matrix:
- Release:
- BuildConfiguration: Release
- variables:
- CI: true
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
- steps:
- - task: DownloadBuildArtifacts@0
- displayName: Download artifacts
- inputs:
- artifactName: artifacts-Windows-Release
- downloadPath: $(Build.SourcesDirectory)/.deps
- itemPattern: '**/*.nupkg'
- # Workaround https://github.com/Microsoft/vsts-tasks/issues/6739
- - task: CopyFiles@2
- displayName: Copy package assets to correct folder
- inputs:
- sourceFolder: $(Build.SourcesDirectory)/.deps/artifacts-Windows-Release
- targetFolder: $(Build.SourcesDirectory)/.deps
- - script: >
- ./build.sh
- --ci
- /t:Prepare
- /t:Restore
- /t:GeneratePropsFiles
- /t:BuildSharedFx
- /p:SharedFxRID=osx-x64
- /p:BuildNumber=$(Build.BuildNumber)
- displayName: Build osx-x64 runtime
- - task: PublishTestResults@2
- displayName: Publish test results
- condition: always()
- inputs:
- testRunner: vstest
- testResultsFiles: 'artifacts/logs/**/*.trx'
- - task: PublishBuildArtifacts@1
- displayName: Upload artifacts
- condition: eq(variables['system.pullrequest.isfork'], false)
- inputs:
- pathtoPublish: ./artifacts/
- artifactName: artifacts-macOS-Release
- artifactType: Container
-
-- phase: Linux
- dependsOn:
- - Windows
- - macOS
- queue:
- name: DotNetCore-Linux
- matrix:
- Release:
- BuildConfiguration: Release
- variables:
- CI: true
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
- steps:
- - task: DownloadBuildArtifacts@0
- displayName: Download artifacts
- inputs:
- artifactName: artifacts-Windows-Release
- downloadPath: $(Build.SourcesDirectory)/.deps
- itemPattern: '**/*.nupkg'
- - task: DownloadBuildArtifacts@0
- displayName: Download Windows artifacts
- inputs:
- artifactName: artifacts-Windows-Release
- downloadPath: $(Build.SourcesDirectory)/.r
- itemPattern: '**/aspnetcore-runtime-*'
- - task: DownloadBuildArtifacts@0
- displayName: Download macOS artifacts
- inputs:
- artifactName: artifacts-macOS-Release
- downloadPath: $(Build.SourcesDirectory)/.r
- itemPattern: '**/aspnetcore-runtime-*'
- # Workaround https://github.com/Microsoft/vsts-tasks/issues/6739
- - task: CopyFiles@2
- displayName: Copy package assets to correct folder
- inputs:
- sourceFolder: $(Build.SourcesDirectory)/.deps/artifacts-Windows-Release
- targetFolder: $(Build.SourcesDirectory)/.deps
- # TODO: Make the cumulative zips build in their own step
- - task: CopyFiles@2
- displayName: Copy package assets to correct folder
- inputs:
- sourceFolder: $(Build.SourcesDirectory)/.r/artifacts-Windows-Release
- targetFolder: $(Build.SourcesDirectory)/artifacts/
- - task: CopyFiles@2
- displayName: Copy package assets to correct folder
- inputs:
- sourceFolder: $(Build.SourcesDirectory)/.r/artifacts-macOS-Release
- targetFolder: $(Build.SourcesDirectory)/artifacts/
- - script: >
- ./build.sh
- --ci
- /t:Prepare
- /t:Restore
- /t:GeneratePropsFiles
- /t:BuildSharedFx
- /p:SharedFxRID=linux-x64
- /p:BuildNumber=$(Build.BuildNumber)
- displayName: Build linux-x64 runtime
- - script: >
- ./build.sh
- --ci
- /t:BuildSharedFx
- /p:SharedFxRID=linux-arm
- /p:BuildNumber=$(Build.BuildNumber)
- displayName: Build linux-arm runtime
- - script: >
- ./dockerbuild.sh
- alpine
- /t:Prepare
- /t:GeneratePropsFiles
- /t:BuildSharedFx
- /p:SharedFxRID=linux-musl-x64
- /p:BuildNumber=$(Build.BuildNumber)
- displayName: Build linux-musl-x64 runtime
- - task: PublishTestResults@2
- displayName: Publish test results
- condition: always()
- inputs:
- testRunner: vstest
- testResultsFiles: 'artifacts/logs/**/*.trx'
- - task: PublishBuildArtifacts@1
- displayName: Upload artifacts
- condition: eq(variables['system.pullrequest.isfork'], false)
- inputs:
- pathtoPublish: ./artifacts/
- artifactName: artifacts-Linux-Release
- artifactType: Container
diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml
index 2720630c00bb..c05e880ec8d2 100644
--- a/.azure/pipelines/ci.yml
+++ b/.azure/pipelines/ci.yml
@@ -1,8 +1,20 @@
-# Don't run CI for this config yet. We're not ready to move official builds on to Azure Pipelines
-trigger: none
+#
+# See https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema for details on this file.
+#
+
+# Configure which branches trigger builds
+trigger:
+ batch: true
+ branches:
+ include:
+ - master
+ - release/*
+ - internal/release/*
+ - ci/*
# Run PR validation on all branches
pr:
+ autoCancel: true
branches:
include:
- '*'
@@ -16,48 +28,283 @@ jobs:
vmImage: vs2017-win2016
steps:
- powershell: ./eng/scripts/CodeCheck.ps1 -ci
+ displayName: Run eng/scripts/CodeCheck.ps1
+
+- template: jobs/default-build.yml
+ parameters:
+ codeSign: true
+ agentOs: Windows
+ buildScript: ./src/SiteExtensions/LoggingAggregate/build.cmd
+ buildArgs: -ci -sign /p:SignType=$(_SignType)
+ jobName: SiteExtensions
+ jobDisplayName: "Build: Azure Logging Site Extension"
+ artifacts:
+ - name: AzureSiteExtensions_Packages
+ path: artifacts/packages/
+ - name: AzureSiteExtensions_Logs
+ path: artifacts/logs/
+
+# Build Windows (x64/x86)
+- template: jobs/default-build.yml
+ parameters:
+ codeSign: true
+ jobName: Windows_build
+ jobDisplayName: "Build: Windows x64/x86"
+ agentOs: Windows
+ buildSteps:
+ - script: "echo ##vso[build.addbuildtag]daily-build"
+ condition: and(ne(variables['Build.Reason'], 'PullRequest'), ne(variables['IsFinalBuild'], 'true'))
+ displayName: 'Set CI tags'
+ - script: "echo ##vso[build.addbuildtag]release-candidate"
+ condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['IsFinalBuild'], 'true'))
+ displayName: 'Set CI tags'
+ # This is going to actually build x86 native assets
+ # TODO: make it possible to build for one Windows architecture at a time
+ - script: ./eng/scripts/cibuild.cmd -arch x64 /p:SignType=$(_SignType)
+ displayName: Build x64
+ # Build the x86 shared framework
+ - script: ./eng/scripts/cibuild.cmd -arch x86 /t:BuildSharedFx /p:SignType=$(_SignType)
+ displayName: Build x86
+ # Windows installers bundle both x86 and x64 assets
+ - powershell: |
+ ./src/Installers/Windows/build.ps1 `
+ -ci `
+ '/p:SignType=$(_SignType)'
+ displayName: Build Installers
+ artifacts:
+ - name: Windows_Packages
+ path: artifacts/packages/
+ - name: Windows_VSIX
+ path: artifacts/VSSetup/
+ - name: Windows_Manifests
+ path: artifacts/manifests/
+ - name: Windows_Installers
+ path: artifacts/installers/
+ - name: Windows_Logs
+ path: artifacts/logs/
+
+# Build Windows ARM
+- template: jobs/default-build.yml
+ parameters:
+ codeSign: true
+ jobName: Windows_arm_build
+ jobDisplayName: "Build: Windows ARM"
+ agentOs: Windows
+ buildScript: ./eng/scripts/cibuild.cmd
+ buildArgs: -arch arm /p:SignType=$(_SignType)
+ afterBuild:
+ # Remove packages that are not rid-specific.
+ # TODO add a flag so builds only produce runtime packages
+ - powershell: gci artifacts/packages/ -recurse -exclude 'runtime.*' -file | rm -ea ignore
+ artifacts:
+ - name: Windows_arm_Packages
+ path: artifacts/packages/
+ - name: Windows_arm_Manifests
+ path: artifacts/manifests/
+ - name: Windows_arm_Installers
+ path: artifacts/installers/
+ - name: Windows_arm_Logs
+ path: artifacts/logs/
+
+# Build MacOS
+- template: jobs/default-build.yml
+ parameters:
+ jobName: MacOs_x64_build
+ jobDisplayName: "Build: macOS"
+ agentOs: macOs
+ buildScript: ./eng/scripts/cibuild.sh
+ buildArgs: --no-build-nodejs --no-build-java
+ afterBuild:
+ # Remove packages that are not rid-specific.
+ # TODO add a flag so macOS/Linux builds only produce runtime packages
+ - script: find artifacts/packages/ -type f -not -name 'runtime.*' -delete
+ artifacts:
+ - name: MacOS_x64_Packages
+ path: artifacts/packages/
+ - name: MacOS_x64_Manifests
+ path: artifacts/manifests/
+ - name: MacOS_x64_Installers
+ path: artifacts/installers/
+ - name: MacOS_x64_Logs
+ path: artifacts/logs/
+- template: jobs/codesign-xplat.yml
+ parameters:
+ inputName: MacOS_x64
+
+# Build Linux x64
+- template: jobs/default-build.yml
+ parameters:
+ jobName: Linux_x64_build
+ jobDisplayName: "Build: Linux x64"
+ agentOs: Linux
+ buildSteps:
+ - script: ./eng/scripts/cibuild.sh --arch x64 --no-build-nodejs --no-build-java
+ displayName: Run cibuild.sh
+ - script: |
+ rm -rf .dotnet/
+ git clean -xfd src/
+ ./dockerbuild.sh bionic \
+ --ci --pack --all --no-build-nodejs --no-build-java \
+ --arch x64 \
+ -e KOREBUILD_SKIP_INSTALL_NETFX=0 \
+ /t:BuildSharedFx \
+ /p:BuildRuntimeArchive=false \
+ /p:LinuxInstallerType=deb
+ displayName: Build Debian installers
+ - script: |
+ rm -rf .dotnet/
+ git clean -xfd src/
+ ./dockerbuild.sh rhel \
+ --ci --pack --all --no-build-nodejs --no-build-java \
+ --arch x64 \
+ -e KOREBUILD_SKIP_INSTALL_NETFX=0 \
+ /t:BuildSharedFx \
+ /p:BuildRuntimeArchive=false \
+ /p:LinuxInstallerType=rpm
+ displayName: Build RPM installers
+ afterBuild:
+ # Remove packages that are not rid-specific.
+ # TODO add a flag so macOS/Linux builds only produce runtime packages
+ - script: find artifacts/packages/ -type f -not -name 'runtime.*' -delete
+ artifacts:
+ - name: Linux_x64_Packages
+ path: artifacts/packages/
+ - name: Linux_x64_Manifests
+ path: artifacts/manifests/
+ - name: Linux_x64_Installers
+ path: artifacts/installers/
+ - name: Linux_x64_Logs
+ path: artifacts/logs/
+- template: jobs/codesign-xplat.yml
+ parameters:
+ inputName: Linux_x64
+
+# Build Linux ARM
+- template: jobs/default-build.yml
+ parameters:
+ jobName: Linux_arm_build
+ jobDisplayName: "Build: Linux ARM"
+ agentOs: Linux
+ buildScript: ./eng/scripts/cibuild.sh
+ buildArgs: --arch arm --no-build-nodejs --no-build-java
+ afterBuild:
+ # Remove packages that are not rid-specific.
+ # TODO add a flag so macOS/Linux builds only produce runtime packages
+ - script: find artifacts/packages/ -type f -not -name 'runtime.*' -delete
+ artifacts:
+ - name: Linux_arm_Packages
+ path: artifacts/packages/
+ - name: Linux_arm_Manifests
+ path: artifacts/manifests/
+ - name: Linux_arm_Installers
+ path: artifacts/installers/
+ - name: Linux_arm_Logs
+ path: artifacts/logs/
+- template: jobs/codesign-xplat.yml
+ parameters:
+ inputName: Linux_arm
+
+# Build Linux ARM64
+- template: jobs/default-build.yml
+ parameters:
+ jobName: Linux_arm64_build
+ jobDisplayName: "Build: Linux ARM64"
+ agentOs: Linux
+ buildScript: ./eng/scripts/cibuild.sh
+ buildArgs: --arch arm64 --no-build-nodejs --no-build-java
+ afterBuild:
+ # Remove packages that are not rid-specific.
+ # TODO add a flag so macOS/Linux builds only produce runtime packages
+ - script: find artifacts/packages/ -type f -not -name 'runtime.*' -delete
+ artifacts:
+ - name: Linux_arm64_Packages
+ path: artifacts/packages/
+ - name: Linux_arm64_Manifests
+ path: artifacts/manifests/
+ - name: Linux_arm64_Installers
+ path: artifacts/installers/
+ - name: Linux_arm64_Logs
+ path: artifacts/logs/
+- template: jobs/codesign-xplat.yml
+ parameters:
+ inputName: Linux_arm64
+
+# Build Linux Musl x64
+- template: jobs/default-build.yml
+ parameters:
+ jobName: Linux_musl_x64_build
+ jobDisplayName: "Build: Linux Musl x64"
+ agentOs: Linux
+ buildScript: ./dockerbuild.sh alpine
+ buildArgs: --ci --pack --all -e KOREBUILD_SKIP_INSTALL_NETFX=0 --arch x64 --os-name linux-musl --no-build-nodejs --no-build-java
+ afterBuild:
+ # Remove packages that are not rid-specific.
+ # TODO add a flag so macOS/Linux builds only produce runtime packages
+ - script: find artifacts/packages/ -type f -not -name 'runtime.*' -delete
+ artifacts:
+ - name: Linux_musl_x64_Packages
+ path: artifacts/packages/
+ - name: Linux_musl_x64_Manifests
+ path: artifacts/manifests/
+ - name: Linux_musl_x64_Installers
+ path: artifacts/installers/
+ - name: Linux_musl_x64_Logs
+ path: artifacts/logs/
+- template: jobs/codesign-xplat.yml
+ parameters:
+ inputName: Linux_musl_x64
+
+# Test jobs
- template: jobs/default-build.yml
parameters:
- jobName: Windows_Build
- jobDisplayName: "Build and test: Windows"
+ condition: ne(variables['SkipTests'], 'true')
+ jobName: Windows_Test
+ jobDisplayName: "Test: Windows Server 2016 x64"
agentOs: Windows
buildScript: ./eng/scripts/cibuild.cmd
+ buildArgs: -test "/p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true"
beforeBuild:
- powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
displayName: Setup IISExpress test certificates and schema
- buildArgs: "/p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true"
- template: jobs/default-build.yml
parameters:
- jobName: MacOs_Build
- jobDisplayName: "Build and test: macOS"
+ condition: ne(variables['SkipTests'], 'true')
+ jobName: MacOs_Test
+ jobDisplayName: "Test: macOS 10.13"
agentOs: macOs
buildScript: ./eng/scripts/cibuild.sh
+ buildArgs: --test
beforeBuild:
- bash: "./eng/scripts/install-nginx-mac.sh"
displayName: Installing Nginx
- template: jobs/default-build.yml
parameters:
- jobName: Linux_Build
- jobDisplayName: "Build and test: Linux"
+ condition: ne(variables['SkipTests'], 'true')
+ jobName: Linux_Test
+ jobDisplayName: "Test: Ubuntu 16.04 x64"
agentOs: Linux
buildScript: ./eng/scripts/cibuild.sh
+ buildArgs: --test
beforeBuild:
- bash: "./eng/scripts/install-nginx-linux.sh"
displayName: Installing Nginx
- template: jobs/iisintegration-job.yml
parameters:
+ condition: ne(variables['SkipTests'], 'true')
TestGroupName: IIS
skipArgs: " /p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=false /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true"
- template: jobs/iisintegration-job.yml
parameters:
+ condition: ne(variables['SkipTests'], 'true')
TestGroupName: IISExpress
skipArgs: "/p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=false /p:SkipIISForwardsCompatibilityTests=true"
- template: jobs/iisintegration-job.yml
parameters:
+ condition: ne(variables['SkipTests'], 'true')
TestGroupName: IISForwardCompat
skipArgs: "/p:SkipIISBackwardsCompatibilityTests=true /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=false"
- template: jobs/iisintegration-job.yml
parameters:
+ condition: ne(variables['SkipTests'], 'true')
TestGroupName: IISBackCompat
skipArgs: "/p:SkipIISBackwardsCompatibilityTests=false /p:SkipIISTests=true /p:SkipIISExpressTests=true /p:SkipIISForwardsCompatibilityTests=true"
-- template: jobs/site-extensions-job.yml
\ No newline at end of file
diff --git a/.azure/pipelines/jobs/codesign-xplat.yml b/.azure/pipelines/jobs/codesign-xplat.yml
new file mode 100644
index 000000000000..d0b3d914cffc
--- /dev/null
+++ b/.azure/pipelines/jobs/codesign-xplat.yml
@@ -0,0 +1,26 @@
+# This runs code signing for .nupkg files built on MacOS or Linux
+parameters:
+ inputName: ''
+
+jobs:
+- template: default-build.yml
+ parameters:
+ dependsOn:
+ - ${{ parameters.inputName }}_build
+ condition: in(variables['_SignType'], 'test', 'real')
+ jobName: CodeSign_Xplat_${{ parameters.inputName }}
+ jobDisplayName: "Code-sign ${{ parameters.inputName }} packages"
+ agentOs: Windows
+ beforeBuild:
+ - task: DownloadBuildArtifacts@0
+ displayName: Download ${{ parameters.inputName }} artifacts
+ inputs:
+ artifactName: ${{ parameters.inputName }}_Packages
+ downloadPath: $(Build.StagingDirectory)/deps/
+ itemPattern: '**/*.nupkg'
+ buildScript: eng\tools\XplatPackageSigner\sign-packages.cmd $(Build.StagingDirectory)\deps\${{ parameters.inputName }}Packages\
+ artifacts:
+ - name: ${{ parameters.inputName }}_Packages_Signed
+ path: $(Build.StagingDirectory)\deps\${{ parameters.inputName }}Packages\
+ - name: ${{ parameters.inputName }}_Logs
+ path: artifacts/logs/
diff --git a/.azure/pipelines/jobs/default-build.yml b/.azure/pipelines/jobs/default-build.yml
index 270ff2be8d32..ab728158b38e 100644
--- a/.azure/pipelines/jobs/default-build.yml
+++ b/.azure/pipelines/jobs/default-build.yml
@@ -14,14 +14,14 @@
# Note: -ci is always passed
# beforeBuild: [steps]
# Additional steps to run before build.sh/cmd
+# buildSteps: [steps]
+# Instead of running build.cmd/sh, run these build steps.
# afterBuild: [steps]
# Additional steps to run after build.sh/cmd
-# artifacts:
-# publish: boolean
-# Should artifacts be published
-# path: string
+# artifacts: [array]
+# - path: string
# The file path to artifacts output
-# force: boolean
+# includeForks: boolean
# Should artifacts from forks be published
# name: string
# The name of the artifact container
@@ -31,6 +31,8 @@
# A map of matrix configurations and variables. https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema?view=vsts#matrix
# dependsOn: string | [ string ]
# For fan-out/fan-in. https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema?view=vsts#phase
+# condition: string
+# A condition which can be used to skip the job completely
# codeSign: boolean
# This build definition is enabled for code signing. (Only applies to Windows)
# buildDirectory: string
@@ -48,17 +50,16 @@ parameters:
buildArgs: ''
configuration: 'Release'
beforeBuild: []
+ # buildSteps: [] don't define an empty object default because there is no way in template expression yet to check "if isEmpty(parameters.buildSteps)"
afterBuild: []
codeSign: false
variables: {}
dependsOn: ''
+ condition: ''
# 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/'
- force: false
+ artifacts: []
buildDirectory: ''
buildScript: ''
@@ -66,6 +67,8 @@ jobs:
- job: ${{ coalesce(parameters.jobName, parameters.agentOs) }}
displayName: ${{ coalesce(parameters.jobDisplayName, parameters.agentOs) }}
dependsOn: ${{ parameters.dependsOn }}
+ ${{ if ne(parameters.condition, '') }}:
+ condition: ${{ parameters.condition }}
timeoutInMinutes: 120
workspace:
clean: all
@@ -76,15 +79,14 @@ jobs:
# Map friendly OS names to the right queue
# See https://github.com/dotnet/arcade/blob/master/Documentation/ChoosingAMachinePool.md
pool:
- ${{ if ne(parameters.poolName, '') }}:
- name: ${{ parameters.poolName }}
+ ${{ if ne(parameters.poolVmImage, '') }}:
vmImage: ${{ parameters.poolVmImage }}
- ${{ if and(eq(parameters.poolName, ''), eq(parameters.agentOs, 'macOS')) }}:
- name: Hosted macOS
+ ${{ if and(eq(parameters.poolVmImage, ''), eq(parameters.agentOs, 'macOS')) }}:
vmImage: macOS-10.13
- ${{ if and(eq(parameters.poolName, ''), eq(parameters.agentOs, 'Linux')) }}:
- name: Hosted Ubuntu 1604
+ ${{ if and(eq(parameters.poolVmImage, ''), eq(parameters.agentOs, 'Linux')) }}:
vmImage: ubuntu-16.04
+ ${{ if ne(parameters.poolName, '') }}:
+ name: ${{ parameters.poolName }}
${{ if and(eq(parameters.poolName, ''), eq(parameters.agentOs, 'Windows')) }}:
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: dotnet-internal-temp
@@ -102,7 +104,7 @@ jobs:
${{ if eq(parameters.agentOs, 'Windows') }}:
JAVA_HOME: $(Agent.BuildDirectory)\.tools\jdk
${{ if or(ne(parameters.codeSign, 'true'), ne(variables['System.TeamProject'], 'internal')) }}:
- _SignType:
+ _SignType: ''
${{ if and(eq(parameters.codeSign, 'true'), eq(variables['System.TeamProject'], 'internal')) }}:
_SignType: real
${{ insert }}: ${{ parameters.variables }}
@@ -124,17 +126,25 @@ jobs:
signType: $(_SignType)
zipSources: false
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
+
- ${{ parameters.beforeBuild }}
- - ${{ if eq(parameters.buildScript, '') }}:
- - ${{ 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
- - ${{ if ne(parameters.buildScript, '') }}:
- - script: $(BuildScript) /p:Configuration=$(BuildConfiguration) $(BuildScriptArgs)
- displayName: run $(BuildScript)
+
+ - ${{ if ne(parameters.buildSteps, '')}}:
+ - ${{ parameters.buildSteps }}
+ - ${{ if eq(parameters.buildSteps, '')}}:
+ - ${{ if eq(parameters.buildScript, '') }}:
+ - ${{ 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
+ - ${{ if ne(parameters.buildScript, '') }}:
+ - script: $(BuildScript) /p:Configuration=$(BuildConfiguration) $(BuildScriptArgs)
+ displayName: run $(BuildScript)
+
+ - ${{ parameters.afterBuild }}
+
- task: PublishTestResults@2
displayName: Publish test results
condition: always()
@@ -144,23 +154,23 @@ jobs:
testRunner: vstest
testResultsFiles: '**/artifacts/**/*.trx'
mergeTestResults: true
- - ${{ if eq(parameters.artifacts.publish, 'true') }}:
+ - ${{ each artifact in parameters.artifacts }}:
- task: PublishBuildArtifacts@1
- displayName: Upload artifacts
- condition: or(eq(variables['system.pullrequest.isfork'], false), eq('${{ parameters.artifacts.force }}', 'true'))
+ displayName: Upload artifacts from ${{ artifact.path }}
+ condition: or(eq(variables['system.pullrequest.isfork'], false), eq('${{ artifact.includeForks }}', 'true'))
continueOnError: true
inputs:
${{ if eq(parameters.buildDirectory, '') }}:
- pathtoPublish: ${{ parameters.artifacts.path }}
+ pathtoPublish: ${{ artifact.path }}
${{ if ne(parameters.buildDirectory, '') }}:
- pathtoPublish: ${{ parameters.buildDirectory }}\${{ parameters.artifacts.path }}
- ${{ if eq(parameters.artifacts.name, '') }}:
+ pathtoPublish: ${{ parameters.buildDirectory }}\${{ artifact.path }}
+ ${{ if eq(artifact.name, '') }}:
artifactName: artifacts-$(AgentOsName)-$(BuildConfiguration)
- ${{ if ne(parameters.artifacts.name, '') }}:
- artifactName: ${{ parameters.artifacts.name }}
+ ${{ if ne(artifact.name, '') }}:
+ artifactName: ${{ artifact.name }}
artifactType: Container
parallel: true
- - ${{ parameters.afterBuild }}
+
- ${{ if and(eq(variables['System.TeamProject'], 'internal'), eq(parameters.agentOs, 'Windows')) }}:
- task: MicroBuildCleanup@1
displayName: Cleanup MicroBuild tasks
diff --git a/.azure/pipelines/jobs/iisintegration-job.yml b/.azure/pipelines/jobs/iisintegration-job.yml
index d174a9fcc859..695964f24742 100644
--- a/.azure/pipelines/jobs/iisintegration-job.yml
+++ b/.azure/pipelines/jobs/iisintegration-job.yml
@@ -1,8 +1,8 @@
jobs:
- template: default-build.yml
parameters:
- buildScript: ./build.cmd
- buildArgs: "-ci -restore -build -test -projects src/Servers/IIS/**/*.csproj ${{ parameters.skipArgs }}"
+ buildScript: .\build.cmd
+ buildArgs: "-ci -test -projects src/Servers/IIS/**/*.csproj ${{ parameters.skipArgs }}"
poolName: "Hosted VS2017"
poolVmImage: "vs2017-win2016"
beforeBuild:
@@ -13,4 +13,4 @@ jobs:
displayName: Stop AppVerifier
condition: always()
jobName: ANCM_${{ parameters.TestGroupName }}
- jobDisplayName: "Build and test: ANCM ${{ parameters.TestGroupName }}"
+ jobDisplayName: "Test: ANCM ${{ parameters.TestGroupName }}"
diff --git a/.azure/pipelines/jobs/site-extensions-job.yml b/.azure/pipelines/jobs/site-extensions-job.yml
deleted file mode 100644
index d80b7061247d..000000000000
--- a/.azure/pipelines/jobs/site-extensions-job.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-jobs:
-- template: default-build.yml
- parameters:
- buildScript: ./src/SiteExtensions/LoggingAggregate/build.cmd
- buildArgs: "-ci"
- jobName: SiteExtensions
- jobDisplayName: "Build logging site extension"
- artifacts:
- publish: true
- path: 'artifacts'
diff --git a/Directory.Build.props b/Directory.Build.props
index 59cdd9ab97e7..1ba0f1b9b567 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -53,6 +53,23 @@
true
true
Debug
+ win
+ osx
+ linux
+ x64
+ $(TargetOsName)-$(TargetArchitecture)
+
+
+
+ win-x64;
+ win-x86;
+ win-arm;
+ osx-x64;
+ linux-musl-x64;
+ linux-x64;
+ linux-arm;
+ linux-arm64
+
SHA256
@@ -61,7 +78,7 @@
false
-
+
strict
@@ -114,12 +131,13 @@
$(MSBuildThisFileDirectory)src\Mvc\src\Microsoft.AspNetCore.Mvc.Testing\Microsoft.AspNetCore.Mvc.Testing.targets
+
+ true
-
diff --git a/build.cmd b/build.cmd
index b6c8d24864f7..592b5d0f9526 100644
--- a/build.cmd
+++ b/build.cmd
@@ -1,2 +1,2 @@
@ECHO OFF
-PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' %*; exit $LASTEXITCODE"
+PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = ''; try { & '%~dp0build.ps1' %*; exit $LASTEXITCODE } catch { write-host $_; exit 1 }"
diff --git a/build.ps1 b/build.ps1
index e2cb9fd0d16d..578129a9acf2 100644
--- a/build.ps1
+++ b/build.ps1
@@ -13,10 +13,13 @@ build projects, run tests, and generate code.
Sets up CI specific settings and variables.
.PARAMETER Restore
-Run restore on projects.
+Run restore.
-.PARAMETER Build
-Compile projects.
+.PARAMETER NoRestore
+Suppress running restore on projects.
+
+.PARAMETER NoBuild
+Suppress re-compile projects. (Implies -NoRestore)
.PARAMETER Pack
Produce packages.
@@ -27,23 +30,34 @@ Run tests.
.PARAMETER Sign
Run code signing.
+.PARAMETER Architecture
+The CPU architecture to build for (x64, x86, arm). Default=x64
+
.PARAMETER Projects
A list of projects to build. Globbing patterns are supported, such as "$(pwd)/**/*.csproj"
.PARAMETER All
Build all project types.
-.PARAMETER Managed
+.PARAMETER BuildManaged
Build managed projects (C#, F#, VB).
+You can also use -NoBuildManaged to suppress this project type.
-.PARAMETER Native
+.PARAMETER BuildNative
Build native projects (C++).
+You can also use -NoBuildNative to suppress this project type.
-.PARAMETER NodeJS
+.PARAMETER BuildNodeJS
Build NodeJS projects (TypeScript, JS).
+You can also use -NoBuildNodeJS to suppress this project type.
-.PARAMETER Installers
+.PARAMETER BuildJava
+Build Java projects.
+You can also use -NoBuildJava to suppress this project type.
+
+.PARAMETER BuildInstallers
Build Windows Installers. Required .NET 3.5 to be installed (WiX toolset requirement).
+You can also use -NoBuildInstallers to suppress this project type.
.PARAMETER MSBuildArguments
Additional MSBuild arguments to be passed through.
@@ -51,7 +65,7 @@ Additional MSBuild arguments to be passed through.
.EXAMPLE
Building both native and managed projects.
- build.ps1 -managed -native
+ build.ps1 -BuildManaged -BuildNative
.EXAMPLE
Building a subfolder of code.
@@ -71,29 +85,35 @@ param(
[switch]$CI,
# Build lifecycle options
- [switch]$Restore = $True, # Run tests
- [switch]$Build = $True, # Compile
+ [switch]$Restore,
+ [switch]$NoRestore, # Suppress restore
+ [switch]$NoBuild, # Suppress compiling
[switch]$Pack, # Produce packages
[switch]$Test, # Run tests
[switch]$Sign, # Code sign
- # Project selection
- [Parameter(ParameterSetName = 'All')]
- [switch]$All, # Build everything
+ [ValidateSet('x64', 'x86', 'arm')]
+ $Architecture = 'x64',
# A list of projects which should be built.
- [Parameter(ParameterSetName = 'Projects')]
[string]$Projects,
+ # Project selection
+ [switch]$All, # Build everything
+
# Build a specified set of project groups
- [Parameter(ParameterSetName = 'Groups')]
- [switch]$Managed,
- [Parameter(ParameterSetName = 'Groups')]
- [switch]$Native,
- [Parameter(ParameterSetName = 'Groups')]
- [switch]$NodeJS,
- [Parameter(ParameterSetName = 'Groups')]
- [switch]$Installers,
+ [switch]$BuildManaged,
+ [switch]$BuildNative,
+ [switch]$BuildNodeJS,
+ [switch]$BuildJava,
+ [switch]$BuildInstallers,
+
+ # Inverse of the previous switches because specifying '-switch:$false' is not intuitive for most command line users
+ [switch]$NoBuildManaged,
+ [switch]$NoBuildNative,
+ [switch]$NoBuildNodeJS,
+ [switch]$NoBuildJava,
+ [switch]$NoBuildInstallers,
# By default, Windows builds will use MSBuild.exe. Passing this will force the build to run on
# dotnet.exe instead, which may cause issues if you invoke build on a project unsupported by
@@ -237,31 +257,48 @@ elseif ($Projects) {
}
$MSBuildArguments += "/p:Projects=$Projects"
}
-else {
- # When adding new sub-group build flags, add them to this check.
- if((-not $Native) -and (-not $Managed) -and (-not $NodeJS) -and (-not $Installers)) {
- Write-Warning "No default group of projects was specified, so building the 'managed' and 'native' subsets of projects. Run ``build.cmd -help`` for more details."
+# When adding new sub-group build flags, add them to this check.
+elseif((-not $BuildNative) -and (-not $BuildManaged) -and (-not $BuildNodeJS) -and (-not $BuildInstallers) -and (-not $BuildJava)) {
+ Write-Warning "No default group of projects was specified, so building the 'managed' and 'native' subsets of projects. Run ``build.cmd -help`` for more details."
- # This goal of this is to pick a sensible default for `build.cmd` with zero arguments.
- # Now that we support subfolder invokations of build.cmd, we will be pushing to have build.cmd build everything (-all) by default
+ # This goal of this is to pick a sensible default for `build.cmd` with zero arguments.
+ # Now that we support subfolder invokations of build.cmd, we will be pushing to have build.cmd build everything (-all) by default
- $Managed = $true
- $Native = $true
- }
-
- $MSBuildArguments += "/p:BuildManaged=$Managed"
- $MSBuildArguments += "/p:BuildNative=$Native"
- $MSBuildArguments += "/p:BuildNodeJS=$NodeJS"
- $MSBuildArguments += "/p:BuildWindowsInstallers=$Installers"
+ $BuildManaged = $true
+ $BuildNative = $true
}
+if ($BuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=true" }
+if ($BuildManaged) { $MSBuildArguments += "/p:BuildManaged=true" }
+if ($BuildNative) { $MSBuildArguments += "/p:BuildNative=true" }
+if ($BuildNodeJS) { $MSBuildArguments += "/p:BuildNodeJS=true" }
+if ($BuildJava) { $MSBuildArguments += "/p:BuildJava=true" }
+
+if ($NoBuildInstallers) { $MSBuildArguments += "/p:BuildInstallers=false" }
+if ($NoBuildManaged) { $MSBuildArguments += "/p:BuildManaged=false" }
+if ($NoBuildNative) { $MSBuildArguments += "/p:BuildNative=false" }
+if ($NoBuildNodeJS) { $MSBuildArguments += "/p:BuildNodeJS=false" }
+if ($NoBuildJava) { $MSBuildArguments += "/p:BuildJava=false" }
+
+$RunBuild = if ($NoBuild) { $false } else { $true }
+
+# Run restore by default unless -NoRestore is set.
+# -NoBuild implies -NoRestore, unless -Restore is explicitly set (as in restore.cmd)
+$RunRestore = if ($NoRestore) { $false }
+ elseif ($Restore) { $true }
+ elseif ($NoBuild) { $false }
+ else { $true }
+
# Target selection
-$MSBuildArguments += "/p:_RunRestore=$Restore"
-$MSBuildArguments += "/p:_RunBuild=$Build"
+$MSBuildArguments += "/p:_RunRestore=$RunRestore"
+$MSBuildArguments += "/p:_RunBuild=$RunBuild"
$MSBuildArguments += "/p:_RunPack=$Pack"
$MSBuildArguments += "/p:_RunTests=$Test"
$MSBuildArguments += "/p:_RunSign=$Sign"
+$MSBuildArguments += "/p:TargetArchitecture=$Architecture"
+$MSBuildArguments += "/p:TargetOsName=win"
+
Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
try {
diff --git a/build.sh b/build.sh
index 0ce513c03e90..bf5e54e8b010 100755
--- a/build.sh
+++ b/build.sh
@@ -18,15 +18,26 @@ lockfile_path="$DIR/korebuild-lock.txt"
config_file="$DIR/korebuild.json"
channel='master'
tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
+target_os_name=''
ci=false
run_restore=true
run_build=true
run_pack=false
run_tests=false
build_all=false
-build_managed=false
-build_nodejs=false
+build_managed=''
+build_native=''
+build_nodejs=''
+build_java=''
build_projects=''
+target_arch='x64'
+
+if [ "$(uname)" = "Darwin" ]; then
+ target_os_name='osx'
+else
+ target_os_name='linux'
+fi
+
msbuild_args=()
#
@@ -36,23 +47,28 @@ __usage() {
echo "Usage: $(basename "${BASH_SOURCE[0]}") [options] [[--] ...]
Arguments:
- ... Arguments passed to the command. Variable number of arguments allowed.
+ ... Arguments passed to the command. Variable number of arguments allowed.
Options:
- --[no-]restore Run restore.
- --[no-]build Compile projects
- --[no-]pack Produce packages.
- --[no-]test Run tests.
+ --arch The CPU architecture to build for (x64, arm, arm64). Default=$target_arch
+ --os-name The base runtime identifier to build for (linux, osx, linux-musl). Default=$target_os_name
+
+ --[no-]restore Run restore.
+ --[no-]build Compile projects. (Implies --no-restore)
+ --[no-]pack Produce packages.
+ --[no-]test Run tests.
- --projects A list of projects to build. (Must be an absolute path.)
- Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
+ --projects A list of projects to build. (Must be an absolute path.)
+ Globbing patterns are supported, such as \"$(pwd)/**/*.csproj\".
- --all Build all project types.
- --managed Build managed projects (C#, F#, VB).
- --nodejs Build NodeJS projects (TypeScript, JS).
+ --all Build all project types.
+ --[no-]build-native Build native projects (C, C++).
+ --[no-]build-managed Build managed projects (C#, F#, VB).
+ --[no-]build-nodejs Build NodeJS projects (TypeScript, JS).
+ --[no-]build-java Build Java projects.
- --ci Apply CI specific settings and environment variables.
- --verbose Show verbose output.
+ --ci Apply CI specific settings and environment variables.
+ --verbose Show verbose output.
Description:
This build script installs required tools and runs an MSBuild command on this repository
@@ -150,6 +166,16 @@ while [[ $# -gt 0 ]]; do
__usage --no-exit
exit 0
;;
+ --arch)
+ shift
+ target_arch="${1:-}"
+ [ -z "$target_arch" ] && __error "Missing value for parameter --arch" && __usage
+ ;;
+ --os-name)
+ shift
+ target_os_name="${1:-}"
+ [ -z "$target_os_name" ] && __error "Missing value for parameter --os-name" && __usage
+ ;;
--restore|-[Rr]estore)
run_restore=true
;;
@@ -161,6 +187,8 @@ while [[ $# -gt 0 ]]; do
;;
--no-build)
run_build=false
+ # --no-build implies --no-restore
+ run_restore=false
;;
--pack|-[Pp]ack)
run_pack=true
@@ -182,14 +210,29 @@ while [[ $# -gt 0 ]]; do
--all|-[Aa]ll)
build_all=true
;;
- --managed|-[Mm]anaged)
+ --build-managed|-BuildManaged)
build_managed=true
;;
- --nodejs|-[Nn]ode[Jj][Ss])
+ --no-build-managed|-NoBuildManaged)
+ build_managed=false
+ ;;
+ --build-nodejs|-BuildNodeJs)
build_nodejs=true
;;
- --native|-[Nn]ative)
- __warn 'The C++ projects in this repo only build on Windows. The --native flag will be ignored.'
+ --no-build-nodejs|-NoBuildNodeJs)
+ build_nodejs=false
+ ;;
+ --build-java|-BuildJava)
+ build_java=true
+ ;;
+ --no-build-java|-NoBuildJava)
+ build_java=false
+ ;;
+ --build-native|-BuildNative)
+ build_native=true
+ ;;
+ --no-build-native|-NoBuildNative)
+ build_native=false
;;
--ci|-[Cc][Ii])
ci=true
@@ -252,24 +295,27 @@ if [ "$build_all" = true ]; then
msbuild_args[${#msbuild_args[*]}]="-p:BuildAllProjects=true"
elif [ ! -z "$build_projects" ]; then
msbuild_args[${#msbuild_args[*]}]="-p:Projects=$build_projects"
-else
- # When adding new sub-group build flags, add them to this check
- if [ "$build_managed" = false ] && [ "$build_nodejs" = false ]; then
- # This goal of this is to pick a sensible default for `build.sh` with zero arguments.
- # We believe the most common thing our contributors will work on is C#, so if no other build group was picked, build the C# projects.
- __warn "No default group of projects was specified, so building the 'managed' subset of projects. Run ``build.sh -help`` for more details."
- build_managed=true
- fi
-
- msbuild_args[${#msbuild_args[*]}]="-p:BuildManaged=$build_managed"
- msbuild_args[${#msbuild_args[*]}]="-p:BuildNodeJS=$build_nodejs"
+elif [ -z "$build_managed" ] && [ -z "$build_nodejs" ] && [ -z "$build_java" ] && [ -z "$build_native" ]; then
+ # This goal of this is to pick a sensible default for `build.sh` with zero arguments.
+ # We believe the most common thing our contributors will work on is C#, so if no other build group was picked, build the C# projects.
+ __warn "No default group of projects was specified, so building the 'managed' subset of projects. Run ``build.sh -help`` for more details."
+ build_managed=true
fi
+# Only set these MSBuild properties if they were explicitly set by build parameters.
+[ ! -z "$build_java" ] && msbuild_args[${#msbuild_args[*]}]="-p:BuildJava=$build_java"
+[ ! -z "$build_native" ] && msbuild_args[${#msbuild_args[*]}]="-p:BuildNative=$build_native"
+[ ! -z "$build_nodejs" ] && msbuild_args[${#msbuild_args[*]}]="-p:BuildNodeJS=$build_nodejs"
+[ ! -z "$build_managed" ] && msbuild_args[${#msbuild_args[*]}]="-p:BuildManaged=$build_managed"
+
msbuild_args[${#msbuild_args[*]}]="-p:_RunRestore=$run_restore"
msbuild_args[${#msbuild_args[*]}]="-p:_RunBuild=$run_build"
msbuild_args[${#msbuild_args[*]}]="-p:_RunPack=$run_pack"
msbuild_args[${#msbuild_args[*]}]="-p:_RunTests=$run_tests"
+msbuild_args[${#msbuild_args[*]}]="-p:TargetArchitecture=$target_arch"
+msbuild_args[${#msbuild_args[*]}]="-p:TargetOsName=$target_os_name"
+
# Disable downloading ref assemblies as a tarball. Use netfx refs from the Microsoft.NETFramework.ReferenceAssemblies NuGet package instead.
[ -z "${KOREBUILD_SKIP_INSTALL_NETFX:-}" ] && KOREBUILD_SKIP_INSTALL_NETFX=1
diff --git a/build/CodeSign.props b/build/CodeSign.props
index d3e6f7b573e3..7f5d4a527d0a 100644
--- a/build/CodeSign.props
+++ b/build/CodeSign.props
@@ -1,12 +1,22 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/CodeSign.targets b/build/CodeSign.targets
index 0211055823f9..6827c8c2a4ed 100644
--- a/build/CodeSign.targets
+++ b/build/CodeSign.targets
@@ -7,7 +7,7 @@
$(IntermediateDir)ar\
- $(BaseRedistNetCorePath)$(SharedFxRid)\
+ $(BaseRedistNetCorePath)$(TargetRuntimeIdentifier)\
diff --git a/build/Publish.targets b/build/Publish.targets
index fa3e8c9d77fb..17248cc56cbb 100644
--- a/build/Publish.targets
+++ b/build/Publish.targets
@@ -1,10 +1,19 @@
-
+
+
+
+
+
+
+
+
diff --git a/build/SharedFx.targets b/build/SharedFx.targets
index b02070716aa7..0a3066c666b8 100644
--- a/build/SharedFx.targets
+++ b/build/SharedFx.targets
@@ -12,8 +12,8 @@
-
-
+
+
@@ -25,25 +25,19 @@
<_RestoreGraphProjectInput>@(FxProjectToBuild)
-
- $(BuildProperties);
- SharedFxRid=$(SharedFxRid);
- SharedFxArchitecture=$(SharedFxArchitecture);
- PackageVersion=$(PackageVersion)
-
+ Properties="$(BuildProperties);RestoreGraphProjectInput=$(_RestoreGraphProjectInput);_DummyTarget=Restore" />
@@ -52,7 +46,7 @@
- $(LogOutputDir)SharedFx-UnitTests-$(Version).trx
+ $(LogOutputDir)SharedFx-UnitTests-$(PackageVersion)-$(TargetRuntimeIdentifier).trx
$(UnitTestFxTrxLogFile)
$(HostMachineRepositoryRoot)/artifacts/logs/SharedFx-UnitTests.trx
diff --git a/build/publish/Publish.csproj b/build/publish/Publish.csproj
index 7ea57a073a42..ef60f95814c7 100644
--- a/build/publish/Publish.csproj
+++ b/build/publish/Publish.csproj
@@ -8,6 +8,7 @@
true
$(ArtifactsDir)manifests\
https://maestro-prod.westus2.cloudapp.azure.com
+ true
@@ -156,9 +157,8 @@
diff --git a/build/repo.props b/build/repo.props
index 0e2dfa73f78e..10ad43d5983e 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -1,13 +1,16 @@
-
+
+ $(TargetOsName)-$(TargetArchitecture)
+
+
true
true
false
- true
+ true
false
@@ -69,10 +72,10 @@
-
+
-
+
@@ -93,36 +96,40 @@
-
+
+
+
- Platform=x64
- Platform=x86
-
+ Platform=x64
+ Platform=Win32
+
-
+
+
-
+ Exclude="@(ProjectToExclude)" />
-
+
+
+
+
+
+
+
-
+
+
+
diff --git a/build/repo.targets b/build/repo.targets
index e5bfffddc455..1474629b04c9 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -34,6 +34,8 @@
$(TestDependsOn);Compile
$(TestDependsOn);TestProjects
+ $(BuildDependsOn);GenerateBuildAssetManifest
+
$(CodeSignDependsOn);RemoveSharedFrameworkOnlyRefsFromNuspec
@@ -71,7 +73,7 @@
diff --git a/build/tasks/RepoTasks.csproj b/build/tasks/RepoTasks.csproj
index 70aa9c651887..7f351493fbdb 100644
--- a/build/tasks/RepoTasks.csproj
+++ b/build/tasks/RepoTasks.csproj
@@ -4,7 +4,7 @@
netcoreapp2.2
net461
- $(DefineConstants);BUILD_MSI_TASKS
+ $(DefineConstants);BUILD_MSI_TASKS
$(DefineConstants);BUILD_AZ_TASKS
true
@@ -16,7 +16,7 @@
-
+
diff --git a/docs/BuildFromSource.md b/docs/BuildFromSource.md
index 65453f88ad08..ef3bf330a111 100644
--- a/docs/BuildFromSource.md
+++ b/docs/BuildFromSource.md
@@ -167,7 +167,8 @@ Property | Description
-------------------------|-------------------------------------------------------------------------------------------------------------
BuildNumberSuffix | (string). A specific build number, typically from a CI counter, which is appended to the pre-release label.
Configuration | `Debug` or `Release`. Default = `Debug`.
-SharedFxRID | The runtime identifier of the shared framework.
+TargetArchitecture | The CPU architecture to build for (x64, x86, arm, arm64).
+TargetOsName | The base runtime identifier to build for (win, linux, osx, linux-musl).
## Use the result of your build
diff --git a/eng/ProjectReferences.props b/eng/ProjectReferences.props
index 262dbf334044..cf82e398f3dc 100644
--- a/eng/ProjectReferences.props
+++ b/eng/ProjectReferences.props
@@ -1,5 +1,5 @@
@@ -125,7 +125,6 @@
-
diff --git a/eng/Versions.props b/eng/Versions.props
index fe0ceaa3904a..4c47762eff79 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -108,7 +108,7 @@
$(KoreBuildVersion)
- 3.0.0-build-20190128.3
+ 3.0.0-build-20190130.1
1.0.0-alpha-004
15.9.0
diff --git a/eng/scripts/CodeCheck.ps1 b/eng/scripts/CodeCheck.ps1
index 0d61970ecc96..029219284449 100644
--- a/eng/scripts/CodeCheck.ps1
+++ b/eng/scripts/CodeCheck.ps1
@@ -26,7 +26,7 @@ try {
#
if ($ci) {
- & $repoRoot/build.cmd /t:InstallDotNet
+ & $repoRoot/build.ps1 -ci /t:InstallDotNet
}
Write-Host "Checking that solutions are up to date"
@@ -56,13 +56,9 @@ try {
Write-Host "Re-running code generation"
- Write-Host "Re-generating ProjectReference.props"
+ Write-Host "Re-generating project lists"
Invoke-Block {
- [string[]] $generateArgs = @()
- if ($ci) {
- $generateArgs += '-ci'
- }
- & $repoRoot/build.cmd /t:GenerateProjectList @generateArgs
+ & $PSScriptRoot\GenerateProjectList.ps1 -ci:$ci
}
Write-Host "Re-generating package baselines"
diff --git a/eng/scripts/GenerateProjectList.ps1 b/eng/scripts/GenerateProjectList.ps1
new file mode 100644
index 000000000000..53cbe5813843
--- /dev/null
+++ b/eng/scripts/GenerateProjectList.ps1
@@ -0,0 +1,8 @@
+param(
+ [switch]$ci
+)
+$ErrorActionPreference = 'stop'
+
+$repoRoot = Resolve-Path "$PSScriptRoot/../.."
+
+& "$repoRoot\build.ps1" -ci:$ci -all /t:GenerateProjectList
diff --git a/eng/scripts/cibuild.cmd b/eng/scripts/cibuild.cmd
index b1048279a305..1e7d47b39e8b 100644
--- a/eng/scripts/cibuild.cmd
+++ b/eng/scripts/cibuild.cmd
@@ -1,3 +1,3 @@
@ECHO OFF
SET RepoRoot=%~dp0..\..
-%RepoRoot%\build.cmd -ci -all -restore -build -pack -test -sign %*
+%RepoRoot%\build.cmd -ci -all -pack -sign %*
diff --git a/eng/scripts/cibuild.sh b/eng/scripts/cibuild.sh
index 93c21befedde..d5837c0908e7 100755
--- a/eng/scripts/cibuild.sh
+++ b/eng/scripts/cibuild.sh
@@ -6,4 +6,4 @@ export PATH="$PATH:$HOME/nginxinstall/sbin/"
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
repo_root="$DIR/../.."
-"$repo_root/build.sh" --ci --all --restore --build --pack --test "$@"
+"$repo_root/build.sh" --ci --all --pack "$@"
diff --git a/eng/signcheck.exclusions.txt b/eng/signcheck.exclusions.txt
index 8438b153a187..93f17f63f593 100644
--- a/eng/signcheck.exclusions.txt
+++ b/eng/signcheck.exclusions.txt
@@ -1,4 +1,5 @@
-content/sdk/*/AppHostTemplate/apphost.exe;AspNetCoreRuntime.*.nupkg; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
+*/AppHostTemplate/apphost.exe;AspNetCoreRuntime.*.nupkg; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
+*/runtime.*.microsoft.netcore.dotnetapphost/*/apphost.exe;Microsoft.AspNetCore.AzureAppServices.SiteExtension.*.nupkg; Exclude the apphost because this is expected to be code-signed by customers after the SDK modifies it.
*.js;; Exclude all JavaScript files from codesigning because we don't expect these to run on Windows Script Host
*.binlog;; Exclude msbuild log files
*.symbols.nupkg;; Exclude NuGet symbols packages. These are not shipped to customers and should not be code signed.
diff --git a/eng/targets/ResolveIisReferences.targets b/eng/targets/ResolveIisReferences.targets
index ba0ae8fc465a..76c17c8c80e8 100644
--- a/eng/targets/ResolveIisReferences.targets
+++ b/eng/targets/ResolveIisReferences.targets
@@ -13,6 +13,7 @@ with the right MSBuild incantations to get output copied to the right place.
Platform=%(Platform)
+ Platform=Win32
%(Platform)\%(HandlerPath)\
diff --git a/eng/targets/RuntimeIdentifiers.props b/eng/targets/RuntimeIdentifiers.props
deleted file mode 100644
index b38ec14b94e6..000000000000
--- a/eng/targets/RuntimeIdentifiers.props
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- win-x64
- osx-x64
- linux-x64
-
- $(SharedFxRid.Substring($([MSBuild]::Add($(SharedFxRid.LastIndexOf('-')), 1))))
-
-
- win-x64
- osx-x64
- linux-x64
-
-
-
- win-x64;
- win-x86;
- win-arm;
- osx-x64;
- linux-musl-x64;
- linux-x64;
- linux-arm;
- linux-arm64
-
-
-
diff --git a/eng/tools/XplatPackageSigner/sign-packages.cmd b/eng/tools/XplatPackageSigner/sign-packages.cmd
index e5cdaf5b4806..a46d10192f80 100644
--- a/eng/tools/XplatPackageSigner/sign-packages.cmd
+++ b/eng/tools/XplatPackageSigner/sign-packages.cmd
@@ -12,4 +12,4 @@ IF "%DirToSign%"=="" (
SET RepoRoot=%~dp0..\..\..
SET Project=%~dp0\XplatPackageSigner.proj
-%RepoRoot%\build.cmd "-restore:$false" -projects %project% /p:DirectoryToSign=%DirToSign% /bl:%RepoRoot%\artifacts\logs\XplatSign.binlog
+%RepoRoot%\build.cmd -NoRestore -projects %project% /p:DirectoryToSign=%DirToSign% /bl:%RepoRoot%\artifacts\logs\XplatSign.binlog
diff --git a/global.json b/global.json
index db12eadd2576..ad876808c107 100644
--- a/global.json
+++ b/global.json
@@ -3,6 +3,6 @@
"version": "3.0.100-preview-009750"
},
"msbuild-sdks": {
- "Internal.AspNetCore.Sdk": "3.0.0-build-20190128.3"
+ "Internal.AspNetCore.Sdk": "3.0.0-build-20190130.1"
}
}
diff --git a/korebuild-lock.txt b/korebuild-lock.txt
index 15f7f6c03256..c5201be5e49f 100644
--- a/korebuild-lock.txt
+++ b/korebuild-lock.txt
@@ -1,2 +1,2 @@
-version:3.0.0-build-20190128.3
-commithash:59917974421fcb1511c1395fd8f4f114c792a635
+version:3.0.0-build-20190130.1
+commithash:3b24877488f6bbff779aa3bd66fcffb4a6c04daf
diff --git a/restore.cmd b/restore.cmd
index e6275ff5d1f8..45e272ec1f57 100644
--- a/restore.cmd
+++ b/restore.cmd
@@ -1,2 +1,2 @@
@ECHO OFF
-PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' -all -restore:$true -build:$False %*; exit $LASTEXITCODE"
+PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' -all -nobuild -restore %*; exit $LASTEXITCODE"
diff --git a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
index e1b38e5602b9..61c027e17553 100644
--- a/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
+++ b/src/Components/Blazor/Build/src/Microsoft.AspNetCore.Blazor.Build.csproj
@@ -10,6 +10,8 @@
+
+ false
true
Microsoft.AspNetCore.Blazor.Build.nuspec
obj\publish\
@@ -35,7 +37,7 @@
-
+
diff --git a/src/Components/Browser.JS/src/Microsoft.AspNetCore.Components.Browser.JS.csproj b/src/Components/Browser.JS/src/Microsoft.AspNetCore.Components.Browser.JS.csproj
deleted file mode 100644
index fcaead2e3470..000000000000
--- a/src/Components/Browser.JS/src/Microsoft.AspNetCore.Components.Browser.JS.csproj
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
- netstandard2.0
- JavaScript runtime files needed for ASP.NET Core Components browser rendering.
- true
- Latest
- ${DefaultItemExcludes};node_modules\**
- false
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Components/Browser.JS/src/Microsoft.AspNetCore.Components.Browser.JS.npmproj b/src/Components/Browser.JS/src/Microsoft.AspNetCore.Components.Browser.JS.npmproj
new file mode 100644
index 000000000000..f2215281b4d5
--- /dev/null
+++ b/src/Components/Browser.JS/src/Microsoft.AspNetCore.Components.Browser.JS.npmproj
@@ -0,0 +1,24 @@
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Components/Components.sln b/src/Components/Components.sln
index ee94d6351b7e..28cff399d54f 100644
--- a/src/Components/Components.sln
+++ b/src/Components/Components.sln
@@ -43,10 +43,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Browser", "Browser", "{A27F
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Browser", "Browser\src\Microsoft.AspNetCore.Components.Browser.csproj", "{3B1A56F8-B3E0-4F33-A717-50BDD4FBE12E}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Browser.JS", "Browser.JS", "{11F9B329-F22E-4AD3-AB38-98C55C2DC54C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Browser.JS", "Browser.JS\src\Microsoft.AspNetCore.Components.Browser.JS.csproj", "{E52044BD-17D3-483D-8F1D-BE9C9F091CCD}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{2639736B-94BF-4A6C-AFAE-E9A44FF04CD0}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Components.Build", "Build\src\Microsoft.AspNetCore.Components.Build.csproj", "{74759A1D-159F-4B66-9FC1-7BE3F0DF2B2B}"
@@ -415,18 +411,6 @@ Global
{3B1A56F8-B3E0-4F33-A717-50BDD4FBE12E}.Release|x64.Build.0 = Release|Any CPU
{3B1A56F8-B3E0-4F33-A717-50BDD4FBE12E}.Release|x86.ActiveCfg = Release|Any CPU
{3B1A56F8-B3E0-4F33-A717-50BDD4FBE12E}.Release|x86.Build.0 = Release|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Debug|x64.Build.0 = Debug|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Debug|x86.Build.0 = Debug|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Release|Any CPU.Build.0 = Release|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Release|x64.ActiveCfg = Release|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Release|x64.Build.0 = Release|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Release|x86.ActiveCfg = Release|Any CPU
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD}.Release|x86.Build.0 = Release|Any CPU
{74759A1D-159F-4B66-9FC1-7BE3F0DF2B2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74759A1D-159F-4B66-9FC1-7BE3F0DF2B2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{74759A1D-159F-4B66-9FC1-7BE3F0DF2B2B}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -1373,7 +1357,6 @@ Global
{1C4BF2D3-44A8-4A71-B031-15B983663CB0} = {A7ABAC29-F73F-456D-AE54-46842CFC2E10}
{C0FFB29E-4696-4875-9039-E5FA1AC5A42A} = {A7ABAC29-F73F-456D-AE54-46842CFC2E10}
{3B1A56F8-B3E0-4F33-A717-50BDD4FBE12E} = {A27FF193-195B-4474-8E6C-840B2E339373}
- {E52044BD-17D3-483D-8F1D-BE9C9F091CCD} = {11F9B329-F22E-4AD3-AB38-98C55C2DC54C}
{74759A1D-159F-4B66-9FC1-7BE3F0DF2B2B} = {2639736B-94BF-4A6C-AFAE-E9A44FF04CD0}
{35A8AE1D-ED82-485E-A8E6-A357B3CB31B3} = {3D9B9B2C-E379-41BD-83D4-2E099FBDA107}
{8D49A92D-B4AA-4A5C-99C1-B4DCBD5491DD} = {3D9B9B2C-E379-41BD-83D4-2E099FBDA107}
diff --git a/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj b/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj
index d4d03b45bd85..7c8e8ad3e479 100644
--- a/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj
+++ b/src/Components/Server/src/Microsoft.AspNetCore.Components.Server.csproj
@@ -7,6 +7,12 @@
true
+
+
+ false
+ false
+
+
@@ -21,9 +27,9 @@
-
+
-
+
diff --git a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
index 1b2afdccaa67..da9688a6fbf0 100644
--- a/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
+++ b/src/Components/test/E2ETest/Microsoft.AspNetCore.Components.E2ETests.csproj
@@ -2,7 +2,7 @@
netcoreapp3.0
- ${DefaultItemExcludes};node_modules\**
+ $(DefaultItemExcludes);node_modules\**
false
diff --git a/src/Framework/src/Microsoft.AspNetCore.App.shfxproj b/src/Framework/src/Microsoft.AspNetCore.App.shfxproj
index 7d3c92d525b0..84ccd46700bb 100644
--- a/src/Framework/src/Microsoft.AspNetCore.App.shfxproj
+++ b/src/Framework/src/Microsoft.AspNetCore.App.shfxproj
@@ -1,25 +1,26 @@
- netcoreapp3.0
+ $(RepositoryRoot)bin\fx\$(TargetOsName)\$(TargetArchitecture)\$(MSBuildProjectName)\
+ $(RepositoryRoot)obj\fx\$(MSBuildProjectName)\
+
+
+
+
+
+ $(TargetRuntimeIdentifier)
+ netcoreapp$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion)
Microsoft.NETCore.App
$(MicrosoftNETCoreAppPackageVersion)
- $(RepositoryRoot)bin\fx\$(SharedFxRid)\$(MSBuildProjectName)\
- $(RepositoryRoot)obj\fx\$(MSBuildProjectName)\
-
true
- $(SharedFxRID)
- $(HostRid)
- $(RuntimeIdentifier)
-
true
true
- false
+ false
true
@@ -35,13 +36,9 @@
false
false
false
-
-
-
-
- runtime.$(SharedFxRid).$(MSBuildProjectName)
+ runtime.$(TargetRuntimeIdentifier).$(MSBuildProjectName)
This package provides assets used for self-contained deployments of an ASP.NET Core application. It is an internal implementation package not meant for direct consumption. Please do not reference directly.
$(MSBuildProjectName) provides a default set of APIs for building an ASP.NET Core application.
diff --git a/src/Framework/src/SharedFx.targets b/src/Framework/src/SharedFx.targets
index 59489cd7bfad..0de8d1dcdb49 100644
--- a/src/Framework/src/SharedFx.targets
+++ b/src/Framework/src/SharedFx.targets
@@ -49,26 +49,16 @@ This targets file should only be imported by .shfxproj files.
$(MSBuildProjectName)
-
- win
- osx
- linux
- linux-musl
- unix
-
- lib
+ lib
.so
- .dll
- .dylib
- .exe
+ .dll
+ .dylib
+ .exe
:
- %3B
+ %3B
- $(IntermediateOutputPath)$(SharedFxRid)\
+ $(IntermediateOutputPath)$(TargetRuntimeIdentifier)\
$(IntermediateOutputPath)u\
@@ -85,13 +75,13 @@ This targets file should only be imported by .shfxproj files.
$(IntermediateOutputPath)crossgen\
crossgen
- $(CrossGenExecutable).exe
+ $(CrossGenExecutable).exe
$(CrossGenExecutable)
- x64_arm\$(CrossGenTool)
- x64_arm64\$(CrossGenTool)
- x86_arm\$(CrossGenTool)
+ x64_arm\$(CrossGenTool)
+ x64_arm64\$(CrossGenTool)
+ x86_arm\$(CrossGenTool)
$(BaseSharedFrameworkName)
@@ -150,18 +140,18 @@ This targets file should only be imported by .shfxproj files.
-
+
<_UnknownRid Remove="@(_UnknownRid)" />
- <_UnknownRid Include="$(SharedFxRid)" Exclude="$(SupportedRuntimeIdentifiers)" />
+ <_UnknownRid Include="$(TargetRuntimeIdentifier)" Exclude="$(SupportedRuntimeIdentifiers)" />
+ Text=""$(TargetRuntimeIdentifier)" not acceptable runtime identifier. Please specify an acceptable value: {$(SupportedRuntimeIdentifiers)}." />
-
+
@@ -193,12 +183,12 @@ This targets file should only be imported by .shfxproj files.
DepsFilePath="$(PublishDepsFilePath)"
DepsFileOutputPath="$(SharedFxDepsFilePath)"
PlatformManifestOutputPath="$(PlatformManifestOutputPath)"
- BaseRuntimeIdentifier="$(BaseSharedFxRid)" />
+ BaseRuntimeIdentifier="$(TargetOsName)" />
-
+
@@ -229,7 +219,7 @@ This targets file should only be imported by .shfxproj files.
-
+
@@ -339,7 +329,7 @@ This targets file should only be imported by .shfxproj files.
id=$(PackageId);
version=$(PackageVersion);
authors=$(Authors);
- rid=$(SharedFxRid);
+ rid=$(TargetRuntimeIdentifier);
description=$(PackageDescription);
tags=$(PackageTags.Replace(';', ' '));
licenseUrl=$(PackageLicenseUrl);
diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
index 97389867334c..2062dcb31038 100644
--- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
+++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
@@ -13,8 +13,8 @@
<_Parameter2>$(PackageVersion)
- <_Parameter1>SharedFxRid
- <_Parameter2>$(SharedFxRid)
+ <_Parameter1>TargetRuntimeIdentifier
+ <_Parameter2>$(TargetRuntimeIdentifier)
<_Parameter1>RepositoryCommit
diff --git a/src/Framework/test/TestData.cs b/src/Framework/test/TestData.cs
index 1e86e1f809be..10d0f2839a30 100644
--- a/src/Framework/test/TestData.cs
+++ b/src/Framework/test/TestData.cs
@@ -14,7 +14,7 @@ public class TestData
public static string GetRepositoryCommit() => GetTestDataValue("RepositoryCommit");
- public static string GetSharedFxRuntimeIdentifier() => GetTestDataValue("SharedFxRid");
+ public static string GetSharedFxRuntimeIdentifier() => GetTestDataValue("TargetRuntimeIdentifier");
public static string GetSharedFxDependencies() => GetTestDataValue("SharedFxDependencies");
diff --git a/src/Hosting/Server.IntegrationTesting/src/ApplicationPublisher.cs b/src/Hosting/Server.IntegrationTesting/src/ApplicationPublisher.cs
index d332797b95cd..90ba2cbf256c 100644
--- a/src/Hosting/Server.IntegrationTesting/src/ApplicationPublisher.cs
+++ b/src/Hosting/Server.IntegrationTesting/src/ApplicationPublisher.cs
@@ -35,9 +35,8 @@ public virtual Task Publish(DeploymentParameters deploymen
+ $" --output \"{publishDirectory.FullName}\""
+ $" --framework {deploymentParameters.TargetFramework}"
+ $" --configuration {deploymentParameters.Configuration}"
- + " --no-restore -p:VerifyMatchingImplicitPackageVersion=false";
- // Set VerifyMatchingImplicitPackageVersion to disable errors when Microsoft.NETCore.App's version is overridden externally
- // This verification doesn't matter if we are skipping restore during tests.
+ + $" /p:TargetArchitecture={deploymentParameters.RuntimeArchitecture}"
+ + " --no-restore";
if (deploymentParameters.ApplicationType == ApplicationType.Standalone)
{
@@ -127,4 +126,4 @@ protected static DirectoryInfo CreateTempDirectory()
return target;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Installers/Archive/Archive.Internal.zipproj b/src/Installers/Archive/Archive.Internal.zipproj
index 9c0356ae82ec..4939325fd277 100644
--- a/src/Installers/Archive/Archive.Internal.zipproj
+++ b/src/Installers/Archive/Archive.Internal.zipproj
@@ -9,8 +9,8 @@
- $(RepositoryRoot)obj\ai\$(SharedFxRid)\
- $(InternalInstallerBaseName)-$(PackageVersion)-$(SharedFxRid)$(ArchiveExtension)
+ $(RepositoryRoot)obj\ai\$(TargetRuntimeIdentifier)\
+ $(InternalInstallerBaseName)-$(PackageVersion)-$(TargetRuntimeIdentifier)$(ArchiveExtension)
$(InstallersOutputPath)
$(InstallersOutputPath)$(OutputFileName)
diff --git a/src/Installers/Archive/Archive.Redist.zipproj b/src/Installers/Archive/Archive.Redist.zipproj
index 04114c070670..5bd4b743733d 100644
--- a/src/Installers/Archive/Archive.Redist.zipproj
+++ b/src/Installers/Archive/Archive.Redist.zipproj
@@ -9,18 +9,18 @@
$(RepositoryRoot)obj\ar\
- $(BaseIntermediateOutputPath)$(SharedFxRid)\
- $(RuntimeInstallerBaseName)-$(PackageVersion)-$(SharedFxRid)$(ArchiveExtension)
+ $(BaseIntermediateOutputPath)$(TargetRuntimeIdentifier)\
+ $(RuntimeInstallerBaseName)-$(PackageVersion)-$(TargetRuntimeIdentifier)$(ArchiveExtension)
$(InstallersOutputPath)
$(InstallersOutputPath)$(OutputFileName)
- dotnet-runtime-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFxRid)$(ArchiveExtension)
+ dotnet-runtime-$(MicrosoftNETCoreAppPackageVersion)-$(TargetRuntimeIdentifier)$(ArchiveExtension)
$(DotNetAssetRootUrl)Runtime/$(MicrosoftNETCoreAppPackageVersion)/$(DotNetRuntimeArchiveFileName)
$(BaseIntermediateOutputPath)$(DotNetRuntimeArchiveFileName)
aspnetcore_base_runtime.version
$(OutputPath)$(BaseRuntimeVersionFileName)
- aspnetcore-runtime-$(SharedFxRid)-version-badge.svg
+ aspnetcore-runtime-$(TargetRuntimeIdentifier)-version-badge.svg
$(OutputPath)$(SvgBadgeFileName)
diff --git a/src/Installers/Debian/Runtime.debproj b/src/Installers/Debian/Runtime.debproj
index 7895bcd64535..c1b4cbf9070d 100644
--- a/src/Installers/Debian/Runtime.debproj
+++ b/src/Installers/Debian/Runtime.debproj
@@ -10,7 +10,7 @@
$(RepositoryRoot)obj\Debian\$(MSBuildProjectName)\
- $(BaseIntermediateOutputPath)$(SharedFxRid)\
+ $(BaseIntermediateOutputPath)$(TargetRuntimeIdentifier)\
$(IntermediateOutputPath)package_root\
$(RuntimeInstallerBaseName)-$(SharedFxVersion)-x64.deb
@@ -51,7 +51,7 @@
-
+
@@ -96,8 +96,7 @@
-
- amd64
+ amd64
$(PackageId)_$(PackageVersion)-$(PackageRevision)_$(DebArch).deb
diff --git a/src/Installers/Directory.Build.props b/src/Installers/Directory.Build.props
index 489a37b2c871..b31d8964770f 100644
--- a/src/Installers/Directory.Build.props
+++ b/src/Installers/Directory.Build.props
@@ -8,7 +8,7 @@
$(RuntimeInstallerBaseName)-internal
.tar.gz
- .zip
+ .zip
diff --git a/src/Installers/Rpm/Rpm.props b/src/Installers/Rpm/Rpm.props
index f002b65eba92..607f5ae374e9 100644
--- a/src/Installers/Rpm/Rpm.props
+++ b/src/Installers/Rpm/Rpm.props
@@ -8,7 +8,7 @@
$(RepositoryRoot)obj\Rpm\$(MSBuildProjectName)\
- $(BaseIntermediateOutputPath)$(SharedFxRid)\
+ $(BaseIntermediateOutputPath)$(TargetRuntimeIdentifier)\
$([MSBuild]::NormalizeDirectory('$(IntermediateOutputPath)content/'))
$(InstallersOutputPath)
diff --git a/src/Installers/Rpm/Rpm.targets b/src/Installers/Rpm/Rpm.targets
index ea8470f2872f..da8010bbd357 100644
--- a/src/Installers/Rpm/Rpm.targets
+++ b/src/Installers/Rpm/Rpm.targets
@@ -18,7 +18,7 @@
-
+
@@ -49,7 +49,7 @@
- amd64
+ amd64
diff --git a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj
index 0d351e670285..242de9fcad42 100644
--- a/src/Installers/Windows/SharedFramework/SharedFramework.wixproj
+++ b/src/Installers/Windows/SharedFramework/SharedFramework.wixproj
@@ -14,7 +14,7 @@
true
5150;5151
true
- $(SharedFrameworkHarvestRootPath)\$(Platform)\
+ $(IntermediateOutputPath)fx\
$(DefineConstants);AspNetCoreSharedFrameworkSource=$(HarvestSource)
$(SharedFrameworkNamespaceGuid)
2.0
@@ -54,5 +54,20 @@
+
+
+
+ $(InstallersOutputPath)
+ $(InstallersOutputPath)
+ $(SharedFrameworkX64HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-x64.zip
+ $(SharedFrameworkX86HarvestRootPath)aspnetcore-runtime-internal-$(PackageVersion)-win-x86.zip
+
+
+
+
+
+
diff --git a/src/Installers/Windows/SharedFrameworkLib/SharedFrameworkLib.wixproj b/src/Installers/Windows/SharedFrameworkLib/SharedFrameworkLib.wixproj
index e08fb8c29df1..2d87dc86c9d7 100644
--- a/src/Installers/Windows/SharedFrameworkLib/SharedFrameworkLib.wixproj
+++ b/src/Installers/Windows/SharedFrameworkLib/SharedFrameworkLib.wixproj
@@ -5,7 +5,7 @@
AspNetCoreSharedFrameworkLib$(Platform)
- $(InternalInstallerBaseName)-$(PackageVersion)-win-$(Platform)
+ $(InternalInstallerBaseName)-$(PackageVersion)-$(TargetRuntimeIdentifier)
true
Library
diff --git a/src/Installers/Windows/build.ps1 b/src/Installers/Windows/build.ps1
index 252e850d375e..0f41b2b0b0b0 100644
--- a/src/Installers/Windows/build.ps1
+++ b/src/Installers/Windows/build.ps1
@@ -1,16 +1,11 @@
#requires -version 5
[cmdletbinding()]
param(
- [string]$Configuration = 'Debug',
- [Parameter(Mandatory = $true)]
+ [switch]$ci,
[Alias("x86")]
- [string]$Runtime86Zip,
- [Parameter(Mandatory = $true)]
+ [string]$sharedfx86harvestroot,
[Alias("x64")]
- [string]$Runtime64Zip,
- [string]$BuildNumber = 't000',
- [switch]$IsFinalBuild,
- [string]$SignType = ''
+ [string]$sharedfx64harvestroot
)
$ErrorActionPreference = 'Stop'
@@ -26,24 +21,23 @@ if ($clean) {
New-Item "$harvestRoot/x86", "$harvestRoot/x64" -ItemType Directory -ErrorAction Ignore | Out-Null
-if (-not (Test-Path "$harvestRoot/x86/shared/")) {
- Expand-Archive $Runtime86Zip -DestinationPath "$harvestRoot/x86"
+[string[]] $msbuildargs = @()
+if (-not $sharedfx86harvestroot) {
+ $msbuildargs += "-p:SharedFrameworkX86HarvestRootPath=$sharedfx86harvestroot"
}
-if (-not (Test-Path "$harvestRoot/x64/shared/")) {
- Expand-Archive $Runtime64Zip -DestinationPath "$harvestRoot/x64"
+if (-not $sharedfx64harvestroot) {
+ $msbuildargs += "-p:SharedFrameworkX64HarvestRootPath=$sharedfx64harvestroot"
}
Push-Location $PSScriptRoot
try {
& $repoRoot/build.ps1 `
- -Installers `
- "-p:SharedFrameworkHarvestRootPath=$repoRoot/obj/sfx/" `
- "-p:Configuration=$Configuration" `
- "-p:BuildNumberSuffix=$BuildNumber" `
- "-p:SignType=$SignType" `
- "-p:IsFinalBuild=$IsFinalBuild" `
- "-bl:$repoRoot/artifacts/logs/installers.msbuild.binlog"
+ -ci:$ci `
+ -sign `
+ -BuildInstallers `
+ "-bl:$repoRoot/artifacts/logs/installers.msbuild.binlog" `
+ @msbuildargs
}
finally {
Pop-Location
diff --git a/src/Middleware/CORS/test/FunctionalTests/FunctionalTests.csproj b/src/Middleware/CORS/test/FunctionalTests/FunctionalTests.csproj
index c5eb365ed6ba..d59d1ff4cd78 100644
--- a/src/Middleware/CORS/test/FunctionalTests/FunctionalTests.csproj
+++ b/src/Middleware/CORS/test/FunctionalTests/FunctionalTests.csproj
@@ -3,14 +3,9 @@
netcoreapp3.0
Cors.FunctionalTests
+ $(DefaultItemExcludes);node_modules\**\*
-
-
-
-
-
-
diff --git a/src/Servers/IIS/IIS/benchmarks/IIS.Performance/IIS.Performance.csproj b/src/Servers/IIS/IIS/benchmarks/IIS.Performance/IIS.Performance.csproj
index d068560ccd9e..603951868a1d 100644
--- a/src/Servers/IIS/IIS/benchmarks/IIS.Performance/IIS.Performance.csproj
+++ b/src/Servers/IIS/IIS/benchmarks/IIS.Performance/IIS.Performance.csproj
@@ -15,7 +15,7 @@
-
+
diff --git a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
index 6794e767a38b..f2ceee919c89 100644
--- a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
+++ b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj
@@ -8,7 +8,6 @@
true
aspnetcore;iis
true
- true
netcoreapp3.0
True
@@ -20,10 +19,10 @@
+ Condition="'$(BuildIisNativeProjects)' == 'true' AND !Exists('$(AspNetCoreModuleV2InProcessHandlerDll)')" />
-
+
diff --git a/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj b/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
index 2e536e21b96c..29acb7107afd 100644
--- a/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
+++ b/src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj
@@ -21,12 +21,12 @@
-
+
-
+
@@ -34,16 +34,15 @@
-
+
-
+
-
diff --git a/src/Servers/IIS/build/Build.Settings b/src/Servers/IIS/build/Build.Settings
index d2e897434c11..e68136bb2b10 100644
--- a/src/Servers/IIS/build/Build.Settings
+++ b/src/Servers/IIS/build/Build.Settings
@@ -93,4 +93,4 @@
$(_TwoDigitYear)$(_ThreeDigitDayOfYear)
-
\ No newline at end of file
+
diff --git a/src/Servers/IIS/build/assets.props b/src/Servers/IIS/build/assets.props
index caf77d416e60..e6c366f29515 100644
--- a/src/Servers/IIS/build/assets.props
+++ b/src/Servers/IIS/build/assets.props
@@ -1,7 +1,7 @@
- true
+ true
x64
$(Platform)
Win32
diff --git a/src/Servers/IIS/build/testsite.props b/src/Servers/IIS/build/testsite.props
index 8d11b921b0ef..3afdd22f2571 100644
--- a/src/Servers/IIS/build/testsite.props
+++ b/src/Servers/IIS/build/testsite.props
@@ -66,14 +66,14 @@
diff --git a/src/Servers/IIS/tools/GenerateNativeAssets.ps1 b/src/Servers/IIS/tools/GenerateNativeAssets.ps1
index 891203aa3a4f..c1fb0637150c 100644
--- a/src/Servers/IIS/tools/GenerateNativeAssets.ps1
+++ b/src/Servers/IIS/tools/GenerateNativeAssets.ps1
@@ -121,7 +121,7 @@ $content = @"
- true
+ true
x64
`$(Platform)
Win32
diff --git a/src/SiteExtensions/LoggingAggregate/Directory.Build.props b/src/SiteExtensions/LoggingAggregate/Directory.Build.props
index a52045a3163a..54d0fcaec244 100644
--- a/src/SiteExtensions/LoggingAggregate/Directory.Build.props
+++ b/src/SiteExtensions/LoggingAggregate/Directory.Build.props
@@ -7,7 +7,7 @@
- $(MSBuildThisFileDirectory)..\..\..\artifacts\packages\$(Configuration)\shipping
+ $(MSBuildThisFileDirectory)..\..\..\artifacts\packages\$(Configuration)\Shipping
diff --git a/src/SiteExtensions/LoggingAggregate/SiteExtensions.sln b/src/SiteExtensions/LoggingAggregate/SiteExtensions.sln
index 39b0b63e476d..eb24ce39925c 100644
--- a/src/SiteExtensions/LoggingAggregate/SiteExtensions.sln
+++ b/src/SiteExtensions/LoggingAggregate/SiteExtensions.sln
@@ -7,7 +7,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0ED05384-4F6
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.AzureAppServices.SiteExtension", "src\Microsoft.AspNetCore.AzureAppServices.SiteExtension\Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj", "{69E22952-302D-4C56-B2BE-7C086EB05C79}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions", "src\Microsoft.Web.Xdt.Extensions\Microsoft.Web.Xdt.Extensions.csproj", "{637E1D65-7F1C-476B-AD0A-30B295DF5414}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Web.Xdt.Extensions", "..\Microsoft.Web.Xdt.Extensions\src\Microsoft.Web.Xdt.Extensions.csproj", "{637E1D65-7F1C-476B-AD0A-30B295DF5414}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{6C71D9CD-271C-41CB-ACCD-9EABED6C9E80}"
EndProject
diff --git a/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj b/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
index f905ee1b1c73..b0ad58a7cfef 100644
--- a/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
+++ b/src/SiteExtensions/LoggingBranch/LoggingBranch.csproj
@@ -8,7 +8,7 @@
false
aspnet;logging;aspnetcore;AzureSiteExtension;keyvault;configuration;dataprotection
content
- Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(TrimmedVersion).$(SharedFxArchitecture)
+ Microsoft.AspNetCore.AzureAppServices.SiteExtension.$(TrimmedVersion).$(TargetArchitecture)
$(PackageVersion)
$(MicrosoftNETCoreAppPackageVersion)
@@ -24,7 +24,7 @@
-
+
diff --git a/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj b/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
index 4b0c31060cb2..810c8e58741e 100644
--- a/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
+++ b/src/SiteExtensions/Runtime/Microsoft.AspNetCore.Runtime.SiteExtension.pkgproj
@@ -6,12 +6,12 @@
content
$(VersionPrefix.Substring(0, $(VersionPrefix.LastIndexOf('.'))))
- ASP.NET Core $(TrimmedVersion) ($(SharedFxArchitecture)) Runtime
+ ASP.NET Core $(TrimmedVersion) ($(TargetArchitecture)) Runtime
This site extension installs Microsoft.AspNetCore.All, Microsoft.AspNetCore.App and Microsoft.NetCore.App shared runtimes.
aspnetcore;AzureSiteExtension
- AspNetCoreRuntime.$(TrimmedVersion).$(SharedFxArchitecture)
+ AspNetCoreRuntime.$(TrimmedVersion).$(TargetArchitecture)
true
- $(RepositoryRoot)obj\ar\$(SharedFxRid)\
+ $(RepositoryRoot)obj\ar\$(TargetRuntimeIdentifier)\
true
@@ -27,8 +27,8 @@
-
-
+
+