mimalloc/azure-pipelines.yml
Jim Huang b0cb27624e CI: Migrate to GCC-7 for Ubuntu Linux
The GNU toolchain shipped with Ubuntu Linux 16.04-LTS is quite old, and
various enhancements of mimalloc might not be facilitated. This patch
bumps CI configurations to specify gcc-7 for Linux targets.
2019-07-22 06:27:30 +08:00

91 lines
2.2 KiB
YAML

# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger:
- master
- dev
jobs:
- job:
displayName: Windows
pool:
vmImage:
windows-2019
steps:
- task: CMake@1
inputs:
workingDirectory: 'build'
cmakeArgs: ..
- task: MSBuild@1
inputs:
solution: build/libmimalloc.sln
- upload: $(Build.SourcesDirectory)/build
artifact: windows
- job:
displayName: Linux
pool:
vmImage:
ubuntu-16.04
strategy:
matrix:
GCC-7 Debug:
CC: gcc-7
CXX: g++-7
BuildType: debug
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_CHECK_FULL=ON
GCC-7 Release:
CC: gcc-7
CXX: g++-7
BuildType: release
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release
Debug Clang:
CC: clang
CXX: clang++
BuildType: debug-clang
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Debug -DMI_CHECK_FULL=ON
Release Clang:
CC: clang
CXX: clang++
BuildType: release-clang
cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release
steps:
- script: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install -y libc++-dev libc++abi-dev libc++abi1 libstdc++-7-dev gcc-7 g++-7
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/$(CC) 100
sudo update-alternatives --set cc /usr/bin/$(CC)
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/$(CXX) 100
sudo update-alternatives --set c++ /usr/bin/$(CXX)
- task: CMake@1
inputs:
workingDirectory: $(BuildType)
cmakeArgs: .. $(cmakeExtraArgs)
- script: make -j$(nproc) -C $(BuildType)
displayName: Make
- script: make test -C $(BuildType)
displayName: Ctest
- upload: $(Build.SourcesDirectory)/$(BuildType)
artifact: ubuntu-$(BuildType)
- job:
displayName: macOS
pool:
vmImage:
macOS-10.14
steps:
- task: CMake@1
inputs:
workingDirectory: 'build'
cmakeArgs: ..
- script: make -j$(sysctl -n hw.ncpu) -C build
- upload: $(Build.SourcesDirectory)/build
artifact: macos