| # This file is responsible for seting up several compiler enviorments. |
| # Once setup is done, the template "CI/build-cmake.yml" is invoked to test freetype |
| # compiles successfully on various operating systems and compilers liststed |
| # below. Artifacts of all builds are also published to azure. |
| |
| # TODO: Add functionality tests |
| |
| trigger: |
| - master |
| |
| variables: |
| vcpkgGitRef: a41c53c14794bb32cb03269069cdd3b66fedda5f # Update this git ref to update vcpkg |
| vckpgPackages: zlib bzip2 libpng harfbuzz |
| |
| jobs: |
| |
| ## Linux ## |
| - job: ArchLinux_Regression |
| displayName: "Archlinux Regression tests" |
| pool: |
| vmImage: ubuntu-latest |
| strategy: |
| matrix: |
| Test1: |
| TEST: 0 |
| Test2: |
| TEST: 1 |
| Test3: |
| TEST: 2 |
| |
| timeoutInMinutes: 360 |
| steps: |
| - checkout: self |
| path: freetype2 |
| |
| - template: CI/arch-setup.yml |
| |
| - template: CI/regression-test.yml |
| parameters: |
| preCMD: 'cd $(Build.BinariesDirectory) && cat << EOF | sudo ./root.x86_64/bin/arch-chroot ./root.x86_64/' |
| srcDIR: freetype2 |
| postCMD: 'EOF' |
| testNum: $(TEST) |
| |
| - job: ArchLinux_Autotools |
| displayName: "Archlinux Autotools" |
| pool: |
| vmImage: ubuntu-latest |
| steps: |
| - checkout: self |
| path: freetype2 |
| |
| - template: CI/arch-setup.yml |
| |
| - template: CI/build-autotools.yml |
| |
| - job: ArchLinux_Cmake |
| displayName: "Archlinux CMake" |
| pool: |
| vmImage: ubuntu-latest |
| strategy: |
| matrix: |
| shared: |
| BUILD_SHARED_LIBS: true |
| BUILD_ARGS: '-G "Unix Makefiles" -D BUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS)' |
| static: |
| BUILD_SHARED_LIBS: false |
| |
| steps: |
| - checkout: self |
| path: freetype2 |
| |
| - template: CI/arch-setup.yml |
| |
| - template: CI/build-cmake.yml |
| parameters: |
| preCMD: 'cd $(Build.BinariesDirectory) && cat << EOF | sudo ./root.x86_64/bin/arch-chroot ./root.x86_64/' |
| srcDIR: freetype2 |
| postCMD: 'EOF' |
| buildArgs: $(BUILD_ARGS) |
| |
| ## Windows ## |
| |
| - job: MSVC_2019_CMake |
| displayName: "MVSC 2019 CMake" |
| pool: |
| vmImage: windows-latest |
| strategy: |
| matrix: |
| i686_shared: |
| TRIPLET: x86-windows |
| BUILD_SHARED_LIBS: true |
| ARCH: Win32 |
| x86_64_shared: |
| TRIPLET: x64-windows |
| BUILD_SHARED_LIBS: true |
| ARCH: x64 |
| i686_static: |
| TRIPLET: x86-windows-static |
| BUILD_SHARED_LIBS: false |
| ARCH: Win32 |
| x86_64_static: |
| TRIPLET: x64-windows-static |
| BUILD_SHARED_LIBS: false |
| ARCH: x64 |
| |
| steps: |
| - task: Cache@2 |
| displayName: 'Cache VCPKG Artifacts' |
| inputs: |
| key: '"$(TRIPLET)" | "$(vckpgPackages)" | "$(vcpkgGitRef)" | "$(Agent.OS)"' |
| path: '$(Build.BinariesDirectory)/vcpkg' |
| |
| - task: run-vcpkg@0 |
| displayName: 'Run VCPKG' |
| inputs: |
| vcpkgArguments: --triplet $(TRIPLET) $(vckpgPackages) |
| vcpkgGitCommitId: $(vcpkgGitRef) |
| vcpkgGitURL: https://github.com/microsoft/vcpkg.git |
| |
| - template: CI/build-cmake.yml |
| parameters: |
| buildArgs: '-G "Visual Studio 16 2019" -A $(ARCH) -D CMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake -D VCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -D VCPKG_TARGET_TRIPLET=$(TRIPLET) -D BUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS)' |
| |
| - job: MINGW_Autotools |
| displayName: "Mingw Autotools" |
| pool: |
| vmImage: windows-latest |
| strategy: |
| matrix: |
| i686: |
| MINGW_UPPER: MINGW32 |
| MINGW_LOWER: mingw32 |
| MINGW_ARCH: i686 |
| x86_64: |
| MINGW_UPPER: MINGW64 |
| MINGW_LOWER: mingw64 |
| MINGW_ARCH: x86_64 |
| |
| steps: |
| - template: CI/mingw-setup.yml |
| |
| - template: CI/build-autotools.yml |
| parameters: |
| mingw: true |
| |
| - job: MINGW_CMake |
| displayName: "MingGW CMake" |
| pool: |
| vmImage: windows-latest |
| strategy: |
| matrix: |
| i686_shared: |
| MINGW_UPPER: MINGW32 |
| MINGW_LOWER: mingw32 |
| MINGW_ARCH: i686 |
| BUILD_SHARED_LIBS: true |
| x86_64_shared: |
| MINGW_UPPER: MINGW64 |
| MINGW_LOWER: mingw64 |
| MINGW_ARCH: x86_64 |
| BUILD_SHARED_LIBS: true |
| i686_static: |
| MINGW_UPPER: MINGW32 |
| MINGW_LOWER: mingw32 |
| MINGW_ARCH: i686 |
| BUILD_SHARED_LIBS: false |
| x86_64_static: |
| MINGW_UPPER: MINGW64 |
| MINGW_LOWER: mingw64 |
| MINGW_ARCH: x86_64 |
| BUILD_SHARED_LIBS: false |
| |
| steps: |
| - template: CI/mingw-setup.yml |
| |
| - template: CI/build-cmake.yml |
| parameters: |
| mingw: true |
| buildArgs: '-G \"MSYS Makefiles\" -D BUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS)' |
| |
| ## MacOS X ## |
| |
| - job: MacOS_X_Autotools |
| displayName: "MacOS X Autotools" |
| pool: |
| vmImage: macos-latest |
| |
| steps: |
| - script: | |
| curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh |
| bash ./install.sh |
| brew install autoconf automake |
| displayName: 'Install Brew' |
| |
| - template: CI/build-autotools.yml |
| |
| - job: MacOS_X_CMake |
| displayName: "MacOS X CMake" |
| pool: |
| vmImage: macos-latest |
| |
| steps: |
| - template: CI/build-cmake.yml |
| parameters: |
| buildArgs: '-G Xcode -D BUILD_FRAMEWORK:BOOL=true' |
| |
| ### iOS ## |
| |
| - job: iOS_CMake |
| displayName: "iOS CMake" |
| pool: |
| vmImage: macos-latest |
| strategy: |
| matrix: |
| OS: |
| IOS_PLATFORM: OS |
| Simulator: |
| IOS_PLATFORM: SIMULATOR64 |
| TV_OS: |
| IOS_PLATFORM: TVOS |
| TV_OS_Simulator: |
| IOS_PLATFORM: SIMULATOR_TVOS |
| Watch_OS: |
| IOS_PLATFORM: WATCHOS |
| Watch_OS_Simulator: |
| IOS_PLATFORM: SIMULATOR_WATCHOS |
| |
| steps: |
| - template: CI/build-cmake.yml |
| parameters: |
| buildArgs: '-G Xcode -D PLATFORM=$(IOS_PLATFORM)' |