|
|
@@ -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
|