704 lines
24 KiB
YAML
704 lines
24 KiB
YAML
#
|
|
# 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:
|
|
- blazor-wasm
|
|
- master
|
|
- release/*
|
|
- internal/release/*
|
|
|
|
# Run PR validation on all branches
|
|
pr:
|
|
autoCancel: true
|
|
branches:
|
|
include:
|
|
- '*'
|
|
|
|
variables:
|
|
- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
|
|
value: true
|
|
- name: _TeamName
|
|
value: AspNetCore
|
|
- name: _DotNetPublishToBlobFeed
|
|
value: true
|
|
- name: _PublishUsingPipelines
|
|
value: true
|
|
- name: _DotNetArtifactsCategory
|
|
value: .NETCORE
|
|
- name: _DotNetValidationArtifactsCategory
|
|
value: .NETCORE
|
|
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
|
|
- name: _UseHelixOpenQueues
|
|
value: 'true'
|
|
- name: _BuildArgs
|
|
value: '/p:SkipTestBuild=true'
|
|
- name: _PublishArgs
|
|
value: ''
|
|
- name: _SignType
|
|
value: ''
|
|
- name: _InternalRuntimeDownloadArgs
|
|
value: ''
|
|
- name: _InternalRuntimeDownloadCodeSignArgs
|
|
value: ''
|
|
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
|
- group: DotNet-MSRC-Storage
|
|
- name: _InternalRuntimeDownloadArgs
|
|
value: -DotNetRuntimeSourceFeed https://dotnetclimsrc.blob.core.windows.net/dotnet -DotNetRuntimeSourceFeedKey
|
|
$(dotnetclimsrc-read-sas-token-base64) /p:DotNetAssetRootAccessTokenSuffix='$(dotnetclimsrc-read-sas-token-base64)'
|
|
# The code signing doesn't use the aspnet build scripts, so the msbuild parameters have
|
|
# to be passed directly. This is awkward, since we pass the same info above, but we have
|
|
# to have it in two different forms
|
|
- name: _InternalRuntimeDownloadCodeSignArgs
|
|
value: /p:DotNetRuntimeSourceFeed=https://dotnetclimsrc.blob.core.windows.net/dotnet /p:DotNetRuntimeSourceFeedKey=$(dotnetclimsrc-read-sas-token-base64)
|
|
- group: DotNet-HelixApi-Access
|
|
- name: _UseHelixOpenQueues
|
|
value: 'false'
|
|
- ${{ if notin(variables['Build.Reason'], 'PullRequest') }}:
|
|
# DotNet-Blob-Feed provides: dotnetfeed-storage-access-key-1
|
|
# Publish-Build-Assets provides: MaestroAccessToken, BotAccount-dotnet-maestro-bot-PAT
|
|
- group: DotNet-Blob-Feed
|
|
- group: Publish-Build-Assets
|
|
|
|
- name: _BuildArgs
|
|
value: /p:TeamName=$(_TeamName)
|
|
/p:OfficialBuildId=$(Build.BuildNumber)
|
|
/p:SkipTestBuild=true
|
|
- name: _SignType
|
|
value: real
|
|
|
|
# The following extra properties are not set when testing. Use with final build.[cmd,sh] of asset-producing jobs.
|
|
- name: _PublishArgs
|
|
value: /p:Publish=true
|
|
/p:GenerateChecksums=true
|
|
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
|
|
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
|
|
/p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
|
|
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
|
|
/p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory)
|
|
|
|
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
|
- name: _BuildArgs
|
|
value: '/p:SkipTestBuild=true'
|
|
- name: _SignType
|
|
value: test
|
|
- name: _PublishArgs
|
|
value: ''
|
|
|
|
stages:
|
|
- stage: build
|
|
displayName: Build
|
|
jobs:
|
|
# Code check
|
|
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: Code_check
|
|
jobDisplayName: Code check
|
|
agentOs: Windows
|
|
steps:
|
|
- powershell: ./eng/scripts/CodeCheck.ps1 -ci $(_InternalRuntimeDownloadArgs)
|
|
displayName: Run eng/scripts/CodeCheck.ps1
|
|
artifacts:
|
|
- name: Code_Check_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
# Build Windows (x64/x86)
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
codeSign: true
|
|
jobName: Windows_build
|
|
jobDisplayName: "Build: Windows x64/x86"
|
|
agentOs: Windows
|
|
steps:
|
|
- script: "echo ##vso[build.addbuildtag]daily-build"
|
|
condition: and(notin(variables['Build.Reason'], 'PullRequest'), notin(variables['DotNetFinalVersionKind'], 'release', 'prerelease'))
|
|
displayName: 'Set CI tags'
|
|
- script: "echo ##vso[build.addbuildtag]release-candidate"
|
|
condition: and(notin(variables['Build.Reason'], 'PullRequest'), in(variables['DotNetFinalVersionKind'], 'release', 'prerelease'))
|
|
displayName: 'Set CI tags'
|
|
|
|
# !!! NOTE !!! Some of these steps have disabled code signing.
|
|
# This is intentional to workaround https://github.com/dotnet/arcade/issues/1957 which always re-submits for code-signing, even
|
|
# if they have already been signed. This results in slower builds due to re-submitting the same .nupkg many times for signing.
|
|
# The sign settings have been configured to
|
|
- script: ./build.cmd
|
|
-ci
|
|
-nobl
|
|
-arch x64
|
|
-pack
|
|
-all
|
|
$(_BuildArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
displayName: Build x64
|
|
|
|
# Build the x86 shared framework
|
|
# This is going to actually build x86 native assets.
|
|
- script: ./build.cmd
|
|
-ci
|
|
-nobl
|
|
-noBuildRepoTasks
|
|
-arch x86
|
|
-pack
|
|
-all
|
|
-noBuildJava
|
|
-noBuildNative
|
|
/p:OnlyPackPlatformSpecificPackages=true
|
|
$(_BuildArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
displayName: Build x86
|
|
|
|
- script: .\src\SiteExtensions\build.cmd
|
|
-ci
|
|
-nobl
|
|
-noBuildRepoTasks
|
|
-pack
|
|
-noBuildDeps
|
|
-noBuildNative
|
|
$(_BuildArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
condition: ne(variables['Build.Reason'], 'PullRequest')
|
|
displayName: Build SiteExtension
|
|
|
|
# This runs code-signing on all packages, zips, and jar files as defined in build/CodeSign.targets. If
|
|
# https://github.com/dotnet/arcade/issues/1957 is resolved, consider running code-signing inline with the other
|
|
# previous steps. Sign check is disabled because it is run in a separate step below, after installers are built.
|
|
- script: ./build.cmd
|
|
-ci
|
|
-nobl
|
|
-noBuildRepoTasks
|
|
-noBuild
|
|
-noRestore
|
|
-sign
|
|
/p:DotNetSignType=$(_SignType)
|
|
$(_BuildArgs)
|
|
displayName: Code sign packages
|
|
|
|
# Windows installers bundle both x86 and x64 assets
|
|
- script: ./build.cmd
|
|
-ci
|
|
-nobl
|
|
-noBuildRepoTasks
|
|
-sign
|
|
-buildInstallers
|
|
-noBuildNative
|
|
/p:DotNetSignType=$(_SignType)
|
|
/p:AssetManifestFileName=aspnetcore-win-x64-x86.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
/p:PublishInstallerBaseVersion=true
|
|
displayName: Build Installers
|
|
|
|
# A few files must also go to the VS package feed.
|
|
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
- task: NuGetCommand@2
|
|
displayName: Push Visual Studio packages
|
|
inputs:
|
|
command: push
|
|
packagesToPush: 'artifacts/packages/**/VS.Redist.Common.AspNetCore.*.nupkg'
|
|
nuGetFeedType: external
|
|
publishFeedCredentials: 'DevDiv - VS package feed'
|
|
|
|
artifacts:
|
|
- name: Windows_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_Packages
|
|
path: artifacts/packages/
|
|
|
|
# Build Windows ARM
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
codeSign: true
|
|
jobName: Windows_arm_build
|
|
jobDisplayName: "Build: Windows ARM"
|
|
agentOs: Windows
|
|
buildArgs:
|
|
-arch arm
|
|
-sign
|
|
-pack
|
|
-noBuildNodeJS
|
|
-noBuildJava
|
|
/p:DotNetSignType=$(_SignType)
|
|
/p:OnlyPackPlatformSpecificPackages=true
|
|
/p:AssetManifestFileName=aspnetcore-win-arm.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: Windows_arm_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_arm_Packages
|
|
path: artifacts/packages/
|
|
|
|
# Build Windows ARM64
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
codeSign: true
|
|
jobName: Windows_arm64_build
|
|
jobDisplayName: "Build: Windows ARM64"
|
|
agentOs: Windows
|
|
buildArgs:
|
|
-arch arm64
|
|
-sign
|
|
-pack
|
|
-noBuildNodeJS
|
|
-noBuildJava
|
|
/p:DotNetSignType=$(_SignType)
|
|
/p:OnlyPackPlatformSpecificPackages=true
|
|
/p:AssetManifestFileName=aspnetcore-win-arm64.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: Windows_arm64_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_arm64_Packages
|
|
path: artifacts/packages/
|
|
- name: Windows_arm64_Installers
|
|
path: artifacts/installers/
|
|
|
|
# Build MacOS
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: MacOs_x64_build
|
|
jobDisplayName: "Build: macOS"
|
|
agentOs: macOs
|
|
buildArgs:
|
|
--pack
|
|
--all
|
|
--no-build-nodejs
|
|
--no-build-java
|
|
-p:OnlyPackPlatformSpecificPackages=true
|
|
-p:AssetManifestFileName=aspnetcore-MacOS_x64.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: MacOS_x64_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: MacOS_x64_Packages
|
|
path: artifacts/packages/
|
|
- 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
|
|
useHostedUbuntu: false
|
|
steps:
|
|
- script: ./build.sh
|
|
--ci
|
|
--nobl
|
|
--arch x64
|
|
--pack
|
|
--all
|
|
--no-build-nodejs
|
|
--no-build-java
|
|
-p:OnlyPackPlatformSpecificPackages=true
|
|
$(_BuildArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
displayName: Run build.sh
|
|
- script: |
|
|
git clean -xfd src/**/obj/
|
|
./dockerbuild.sh bionic \
|
|
--ci \
|
|
--nobl \
|
|
--arch x64 \
|
|
--build-installers \
|
|
--no-build-deps \
|
|
--no-build-nodejs \
|
|
-p:OnlyPackPlatformSpecificPackages=true \
|
|
-p:BuildRuntimeArchive=false \
|
|
-p:LinuxInstallerType=deb \
|
|
$(_BuildArgs) \
|
|
$(_InternalRuntimeDownloadArgs)
|
|
displayName: Build Debian installers
|
|
- script: |
|
|
git clean -xfd src/**/obj/
|
|
./dockerbuild.sh rhel \
|
|
--ci \
|
|
--nobl \
|
|
--arch x64 \
|
|
--build-installers \
|
|
--no-build-deps \
|
|
--no-build-nodejs \
|
|
-p:OnlyPackPlatformSpecificPackages=true \
|
|
-p:BuildRuntimeArchive=false \
|
|
-p:LinuxInstallerType=rpm \
|
|
-p:AssetManifestFileName=aspnetcore-Linux_x64.xml \
|
|
$(_BuildArgs) \
|
|
$(_PublishArgs) \
|
|
$(_InternalRuntimeDownloadArgs)
|
|
displayName: Build RPM installers
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: Linux_x64_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_x64_Packages
|
|
path: artifacts/packages/
|
|
- 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
|
|
buildArgs:
|
|
--arch arm
|
|
--pack
|
|
--all
|
|
--no-build-nodejs
|
|
--no-build-java
|
|
-p:OnlyPackPlatformSpecificPackages=true
|
|
-p:AssetManifestFileName=aspnetcore-Linux_arm.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: Linux_arm_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_arm_Packages
|
|
path: artifacts/packages/
|
|
- 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
|
|
buildArgs:
|
|
--arch arm64
|
|
--all
|
|
--pack
|
|
--no-build-nodejs
|
|
--no-build-java
|
|
-p:OnlyPackPlatformSpecificPackages=true
|
|
-p:AssetManifestFileName=aspnetcore-Linux_arm64.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: Linux_arm64_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_arm64_Packages
|
|
path: artifacts/packages/
|
|
- 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
|
|
container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.9-WithNode-0fc54a3-20190918214015
|
|
buildScript: ./build.sh
|
|
buildArgs:
|
|
--arch x64
|
|
--os-name linux-musl
|
|
--pack
|
|
--all
|
|
--no-build-nodejs
|
|
--no-build-java
|
|
-p:OnlyPackPlatformSpecificPackages=true
|
|
-p:AssetManifestFileName=aspnetcore-Linux_musl_x64.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
skipComponentGovernanceDetection: true
|
|
artifacts:
|
|
- name: Linux_musl_x64_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_musl_x64_Packages
|
|
path: artifacts/packages/
|
|
- template: jobs/codesign-xplat.yml
|
|
parameters:
|
|
inputName: Linux_musl_x64
|
|
|
|
# Build Linux Musl ARM64
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: Linux_musl_arm64_build
|
|
jobDisplayName: "Build: Linux Musl ARM64"
|
|
agentOs: Linux
|
|
useHostedUbuntu: false
|
|
container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine-20200413125008-406629a
|
|
buildScript: ./build.sh
|
|
buildArgs:
|
|
--arch arm64
|
|
--os-name linux-musl
|
|
--pack
|
|
--all
|
|
--no-build-nodejs
|
|
--no-build-java
|
|
-p:OnlyPackPlatformSpecificPackages=true
|
|
-p:AssetManifestFileName=aspnetcore-Linux_musl_arm64.xml
|
|
$(_BuildArgs)
|
|
$(_PublishArgs)
|
|
$(_InternalRuntimeDownloadArgs)
|
|
installNodeJs: false
|
|
installJdk: false
|
|
artifacts:
|
|
- name: Linux_musl_arm64_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_musl_arm64_Packages
|
|
path: artifacts/packages/
|
|
- template: jobs/codesign-xplat.yml
|
|
parameters:
|
|
inputName: Linux_musl_arm64
|
|
|
|
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
|
|
# Test jobs
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
condition: ne(variables['SkipTests'], 'true')
|
|
jobName: Windows_Test
|
|
jobDisplayName: "Test: Windows Server 2016 x64"
|
|
agentOs: Windows
|
|
isTestingJob: true
|
|
buildArgs: -all -pack -test /p:SkipHelixReadyTests=true /p:SkipIISNewHandlerTests=true /p:SkipIISTests=true
|
|
/p:SkipIISExpressTests=true /p:SkipIISNewShimTests=true /p:RunTemplateTests=false
|
|
$(_InternalRuntimeDownloadArgs)
|
|
beforeBuild:
|
|
- powershell: "& ./src/Servers/IIS/tools/UpdateIISExpressCertificate.ps1; & ./src/Servers/IIS/tools/update_schema.ps1"
|
|
displayName: Setup IISExpress test certificates and schema
|
|
artifacts:
|
|
- name: Windows_Test_Dumps
|
|
path: artifacts/dumps/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_Test_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_Test_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
condition: ne(variables['SkipTests'], 'true')
|
|
jobName: Windows_Templates_Test
|
|
jobDisplayName: "Test: Templates - Windows Server 2016 x64"
|
|
agentOs: Windows
|
|
isTestingJob: true
|
|
steps:
|
|
- script: ./build.cmd -ci -nobl -all -pack $(_InternalRuntimeDownloadArgs)
|
|
displayName: Build Repo
|
|
- script: ./src/ProjectTemplates/build.cmd -ci -nobl -noBuildRepoTasks -pack -NoRestore -noBuildNative -NoBuilddeps "/p:RunTemplateTests=true"
|
|
displayName: Pack Templates
|
|
- script: ./src/ProjectTemplates/build.cmd -ci -nobl -noBuildRepoTasks -test -NoRestore -NoBuild -NoBuilddeps "/p:RunTemplateTests=true"
|
|
displayName: Test Templates
|
|
artifacts:
|
|
- name: Windows_Test_Templates_Dumps
|
|
path: artifacts/dumps/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_Test_Templates_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Windows_Test_Templates_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
condition: ne(variables['SkipTests'], 'true')
|
|
jobName: MacOS_Test
|
|
jobDisplayName: "Test: macOS 10.14"
|
|
agentOs: macOS
|
|
isTestingJob: true
|
|
buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs)
|
|
beforeBuild:
|
|
- bash: "./eng/scripts/install-nginx-mac.sh"
|
|
displayName: Installing Nginx
|
|
artifacts:
|
|
- name: MacOS_Test_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: MacOS_Test_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
condition: ne(variables['SkipTests'], 'true')
|
|
jobName: Linux_Test
|
|
jobDisplayName: "Test: Ubuntu 16.04 x64"
|
|
agentOs: Linux
|
|
isTestingJob: true
|
|
useHostedUbuntu: false
|
|
buildArgs: --all --test "/p:RunTemplateTests=false /p:SkipHelixReadyTests=true" $(_InternalRuntimeDownloadArgs)
|
|
beforeBuild:
|
|
- bash: "./eng/scripts/install-nginx-linux.sh"
|
|
displayName: Installing Nginx
|
|
- bash: "echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p"
|
|
displayName: Increase inotify limit
|
|
artifacts:
|
|
- name: Linux_Test_Logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
- name: Linux_Test_Results
|
|
path: artifacts/TestResults/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
# Helix x64
|
|
- template: jobs/default-build.yml
|
|
parameters:
|
|
jobName: Helix_x64
|
|
jobDisplayName: 'Tests: Helix x64'
|
|
agentOs: Windows
|
|
timeoutInMinutes: 180
|
|
steps:
|
|
# Build the shared framework
|
|
- script: ./build.cmd -ci -nobl -all -pack -arch x64 /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
|
displayName: Build shared fx
|
|
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -restore -noBuild -noBuildNative -projects src/Grpc/**/*.csproj
|
|
displayName: Restore interop projects
|
|
- script: ./build.cmd -ci -nobl -noBuildRepoTasks -noRestore -test -all -noBuildNative -projects eng\helix\helix.proj
|
|
/p:IsRequiredCheck=true /p:IsHelixJob=true /p:BuildInteropProjects=true /p:RunTemplateTests=true
|
|
/p:ASPNETCORE_TEST_LOG_DIR=artifacts/log
|
|
displayName: Run build.cmd helix target
|
|
env:
|
|
HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues
|
|
SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops
|
|
artifacts:
|
|
- name: Helix_logs
|
|
path: artifacts/log/
|
|
publishOnError: true
|
|
includeForks: true
|
|
|
|
# Source build
|
|
- job: Source_Build
|
|
displayName: 'Test: Linux Source Build'
|
|
container: centos:7
|
|
pool:
|
|
vmImage: 'ubuntu-16.04'
|
|
variables:
|
|
DotNetCoreSdkDir: $(Agent.ToolsDirectory)/dotnet
|
|
# This isn't needed in the path because build does not need to _use_ global tools.
|
|
DOTNET_CLI_HOME: $(System.DefaultWorkingDirectory)
|
|
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: true
|
|
steps:
|
|
- script: |
|
|
source eng/common/native/common-library.sh
|
|
mkdir -p $(System.DefaultWorkingDirectory)/.tools
|
|
GetFile https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 $(System.DefaultWorkingDirectory)/.tools/jq
|
|
chmod +x $(System.DefaultWorkingDirectory)/.tools/jq
|
|
echo "##vso[task.prependpath]$(System.DefaultWorkingDirectory)/.tools"
|
|
displayName: Install jq
|
|
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
|
|
- task: Bash@3
|
|
displayName: Setup Private Feeds Credentials
|
|
inputs:
|
|
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
|
|
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
|
|
env:
|
|
Token: $(dn-bot-dnceng-artifact-feeds-rw)
|
|
- script: ./eng/scripts/ci-source-build.sh --ci --nobl --configuration Release /p:BuildManaged=true /p:BuildNodeJs=false
|
|
displayName: Run ci-source-build.sh
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: Upload logs
|
|
condition: always()
|
|
continueOnError: true
|
|
inputs:
|
|
pathtoPublish: artifacts/log/
|
|
artifactName: Source_Build_Logs
|
|
artifactType: Container
|
|
parallel: true
|
|
- task: PublishBuildArtifacts@1
|
|
displayName: Upload package artifacts
|
|
# Only capture source build artifacts in PRs for the sake of inspecting
|
|
# changes that impact source-build. The artifacts from this build pipeline are never actually used.
|
|
condition: and(succeeded(), in(variables['Build.Reason'], 'PullRequest'))
|
|
inputs:
|
|
pathtoPublish: artifacts/packages/
|
|
artifactName: Source_Build_Packages
|
|
artifactType: Container
|
|
parallel: true
|
|
|
|
# Publish to the BAR
|
|
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
- template: /eng/common/templates/job/publish-build-assets.yml
|
|
parameters:
|
|
dependsOn:
|
|
- Windows_build
|
|
- Windows_arm_build
|
|
- Windows_arm64_build
|
|
- CodeSign_Xplat_MacOS_x64
|
|
- CodeSign_Xplat_Linux_x64
|
|
- CodeSign_Xplat_Linux_arm
|
|
- CodeSign_Xplat_Linux_arm64
|
|
- CodeSign_Xplat_Linux_musl_x64
|
|
- CodeSign_Xplat_Linux_musl_arm64
|
|
# In addition to the dependencies above, ensure the build was successful overall.
|
|
- Source_Build
|
|
pool:
|
|
vmImage: vs2017-win2016
|
|
publishUsingPipelines: ${{ variables._PublishUsingPipelines }}
|
|
enablePublishBuildArtifacts: true # publish artifacts/log files
|
|
|
|
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
|
- template: /eng/common/templates/post-build/post-build.yml
|
|
parameters:
|
|
enableSymbolValidation: false
|
|
enableSigningValidation: false
|
|
enableNugetValidation: false
|
|
publishInstallersAndChecksums: true
|