181 lines
6.6 KiB
YAML
181 lines
6.6 KiB
YAML
|
trigger:
|
||
|
batch: true
|
||
|
branches:
|
||
|
include:
|
||
|
- release/6.x
|
||
|
- release/9.x
|
||
|
|
||
|
pr:
|
||
|
branches:
|
||
|
include:
|
||
|
- release/6.x
|
||
|
- release/9.x
|
||
|
|
||
|
variables:
|
||
|
- template: eng/common-variables.yml
|
||
|
|
||
|
stages:
|
||
|
- stage: build
|
||
|
displayName: Build
|
||
|
jobs:
|
||
|
- template: /eng/common/templates/jobs/jobs.yml
|
||
|
parameters:
|
||
|
enablePublishBuildArtifacts: true
|
||
|
enablePublishBuildAssets: true
|
||
|
enablePublishUsingPipelines: true
|
||
|
variables:
|
||
|
- _BuildConfig: Release
|
||
|
jobs:
|
||
|
|
||
|
############ LINUX BUILD ############
|
||
|
- job: Build_Linux
|
||
|
displayName: Linux
|
||
|
timeoutInMinutes: 120
|
||
|
strategy:
|
||
|
matrix:
|
||
|
x64:
|
||
|
poolname: Hosted Ubuntu 1604
|
||
|
assetManifestOS: linux
|
||
|
assetManifestPlatform: x64
|
||
|
imagename: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-bfcd90a-20200121150017
|
||
|
rootfs:
|
||
|
archflag: --arch x64
|
||
|
arm64:
|
||
|
poolname: Hosted Ubuntu 1604
|
||
|
assetManifestOS: linux
|
||
|
assetManifestPlatform: arm64
|
||
|
imagename: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-cfdd435-20200121150126
|
||
|
rootfs: /crossrootfs/arm64
|
||
|
archflag: --arch arm64
|
||
|
arm:
|
||
|
poolname: Hosted Ubuntu 1604
|
||
|
assetManifestOS: linux
|
||
|
assetManifestPlatform: arm
|
||
|
imagename: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-09ec757-20200320131433
|
||
|
rootfs: /crossrootfs/arm
|
||
|
archflag: --arch arm
|
||
|
pool:
|
||
|
name: $(poolname)
|
||
|
container:
|
||
|
image: $(imagename)
|
||
|
steps:
|
||
|
- bash: |
|
||
|
set -ex
|
||
|
git clean -ffdx
|
||
|
git reset --hard HEAD
|
||
|
displayName: 'Clean up working directory'
|
||
|
|
||
|
- bash: |
|
||
|
./build.sh --ci --restore --build --pack $(archflag) --configuration $(_BuildConfig) $(_InternalBuildArgs)
|
||
|
displayName: 'Build and package'
|
||
|
env:
|
||
|
ROOTFS_DIR: $(rootfs)
|
||
|
|
||
|
- bash: |
|
||
|
./eng/common/build.sh --ci --restore --publish --configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) --projects $(Build.SourcesDirectory)/llvm.proj
|
||
|
displayName: Publish packages
|
||
|
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
|
||
|
|
||
|
############ MACOS BUILD ############
|
||
|
- job: Build_macOS
|
||
|
displayName: macOS
|
||
|
timeoutInMinutes: 120
|
||
|
strategy:
|
||
|
matrix:
|
||
|
x64:
|
||
|
poolname: Hosted macOS
|
||
|
assetManifestOS: osx
|
||
|
assetManifestPlatform: x64
|
||
|
pool:
|
||
|
name: $(poolname)
|
||
|
steps:
|
||
|
- bash: |
|
||
|
set -ex
|
||
|
git clean -ffdx
|
||
|
git reset --hard HEAD
|
||
|
displayName: 'Clean up working directory'
|
||
|
|
||
|
- bash: |
|
||
|
brew install autoconf automake libtool
|
||
|
displayName: 'Prepare macOS dependencies'
|
||
|
|
||
|
- bash: |
|
||
|
./build.sh --ci --restore --build --pack --configuration $(_BuildConfig) $(_InternalBuildArgs)
|
||
|
displayName: 'Build and package'
|
||
|
|
||
|
- bash:
|
||
|
./eng/common/build.sh --ci --restore --publish --configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) --projects $(Build.SourcesDirectory)/llvm.proj
|
||
|
displayName: Publish packages
|
||
|
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
|
||
|
|
||
|
############ MXE BUILD ############
|
||
|
- job: Build_mxe
|
||
|
displayName: mxe
|
||
|
timeoutInMinutes: 120
|
||
|
strategy:
|
||
|
matrix:
|
||
|
x64:
|
||
|
poolname: Hosted macOS
|
||
|
assetManifestOS: osx
|
||
|
assetManifestPlatform: x64
|
||
|
pool:
|
||
|
name: $(poolname)
|
||
|
steps:
|
||
|
- bash: |
|
||
|
set -exv
|
||
|
git clean -ffdx
|
||
|
git reset --hard HEAD
|
||
|
displayName: 'Clean up working directory'
|
||
|
|
||
|
- bash: |
|
||
|
brew install autoconf automake libtool
|
||
|
brew tap xamarin/xamarin-android-windeps
|
||
|
brew install mingw-w64 xamarin/xamarin-android-windeps/mingw-zlib
|
||
|
displayName: 'Prepare macOS dependencies'
|
||
|
|
||
|
- bash: |
|
||
|
MXE_PREFIX=`brew --prefix`
|
||
|
sed -e "s,@MXE_PATH@,$MXE_PREFIX," < mxe-Win64.cmake.in > llvm/cmake/modules/mxe-Win64.cmake
|
||
|
./build.sh --ci --restore --build --pack --arch x64-mxe /p:MXE_PREFIX=$MXE_PREFIX -v:normal --configuration $(_BuildConfig) $(_InternalBuildArgs)
|
||
|
displayName: 'Build and package'
|
||
|
|
||
|
- bash:
|
||
|
#./eng/common/build.sh --ci --restore --publish --configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) --projects $(Build.SourcesDirectory)/llvm.proj
|
||
|
displayName: Publish packages
|
||
|
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
|
||
|
|
||
|
############ WINDOWS BUILD ############
|
||
|
- job: Build_Windows
|
||
|
displayName: Windows
|
||
|
timeoutInMinutes: 120
|
||
|
strategy:
|
||
|
matrix:
|
||
|
x64:
|
||
|
poolname: Hosted VS2017
|
||
|
assetManifestOS: win
|
||
|
assetManifestPlatform: x64
|
||
|
pool:
|
||
|
name: $(poolname)
|
||
|
steps:
|
||
|
- bash: |
|
||
|
set -ex
|
||
|
git clean -ffdx
|
||
|
git reset --hard HEAD
|
||
|
displayName: 'Clean up working directory'
|
||
|
|
||
|
- powershell: eng\build.ps1 -ci -restore -build -pack -configuration $(_BuildConfig) $(_InternalBuildArgs)
|
||
|
displayName: 'Build and package'
|
||
|
|
||
|
- powershell: eng\common\build.ps1 -ci -restore -publish -configuration $(_BuildConfig) $(_InternalBuildArgs) /p:AssetManifestOS=$(assetManifestOS) /p:PlatformName=$(assetManifestPlatform) -projects $(Build.SourcesDirectory)\llvm.proj
|
||
|
displayName: Publish packages
|
||
|
condition: and(succeeded(), ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest'))
|
||
|
|
||
|
############ POST BUILD ARCADE LOGIC ############
|
||
|
- ${{ if and(ne(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}:
|
||
|
- template: /eng/common/templates/post-build/post-build.yml
|
||
|
parameters:
|
||
|
enableSourceLinkValidation: false
|
||
|
enableSigningValidation: false
|
||
|
enableSymbolValidation: false
|
||
|
enableNugetValidation: true
|