Added Azure DevOps Pipeline (#776)
* Trying to get an older linux build * Switch to clang 3.8 on linux. #686 * Statically link things for linux * Set up CI with Azure Pipelines * Updated the tizen install script to work on macos and linux * Make sure to install the version of the Android NDK we support * Added missing [SkippableFact] attribute
This commit is contained in:
Родитель
e22480b310
Коммит
d6f333a52f
21
build.cake
21
build.cake
|
@ -36,9 +36,12 @@ var MDocPath = MakeAbsolute ((FilePath)"externals/api-doc-tools/bin/Release/mdoc
|
|||
var MSBuildToolPath = GetMSBuildToolPath (EnvironmentVariable ("MSBUILD_EXE"));
|
||||
var PythonToolPath = EnvironmentVariable ("PYTHON_EXE") ?? "python";
|
||||
|
||||
DirectoryPath ANDROID_SDK_ROOT = EnvironmentVariable ("ANDROID_SDK_ROOT") ?? EnvironmentVariable ("ANDROID_HOME") ?? EnvironmentVariable ("HOME") + "/Library/Developer/Xamarin/android-sdk-macosx";
|
||||
DirectoryPath ANDROID_NDK_HOME = EnvironmentVariable ("ANDROID_NDK_HOME") ?? EnvironmentVariable ("ANDROID_NDK_ROOT") ?? EnvironmentVariable ("HOME") + "/Library/Developer/Xamarin/android-ndk";
|
||||
DirectoryPath TIZEN_STUDIO_HOME = EnvironmentVariable ("TIZEN_STUDIO_HOME") ?? EnvironmentVariable ("HOME") + "/tizen-studio";
|
||||
DirectoryPath PROFILE_PATH = EnvironmentVariable ("USERPROFILE") ?? EnvironmentVariable ("HOME");
|
||||
|
||||
DirectoryPath NUGET_PACKAGES = EnvironmentVariable ("NUGET_PACKAGES") ?? PROFILE_PATH.Combine (".nuget/packages");
|
||||
DirectoryPath ANDROID_SDK_ROOT = EnvironmentVariable ("ANDROID_SDK_ROOT") ?? EnvironmentVariable ("ANDROID_HOME") ?? PROFILE_PATH.Combine ("Library/Developer/Xamarin/android-sdk-macosx");
|
||||
DirectoryPath ANDROID_NDK_HOME = EnvironmentVariable ("ANDROID_NDK_HOME") ?? EnvironmentVariable ("ANDROID_NDK_ROOT") ?? PROFILE_PATH.Combine ("Library/Developer/Xamarin/android-ndk");
|
||||
DirectoryPath TIZEN_STUDIO_HOME = EnvironmentVariable ("TIZEN_STUDIO_HOME") ?? PROFILE_PATH.Combine ("tizen-studio");
|
||||
|
||||
DirectoryPath ROOT_PATH = MakeAbsolute(Directory("."));
|
||||
DirectoryPath DEPOT_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/depot_tools"));
|
||||
|
@ -48,9 +51,6 @@ DirectoryPath HARFBUZZ_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/harfbuzz
|
|||
DirectoryPath DOCS_PATH = MakeAbsolute(ROOT_PATH.Combine("docs/xml"));
|
||||
DirectoryPath PACKAGE_CACHE_PATH = MakeAbsolute(ROOT_PATH.Combine("externals/package_cache"));
|
||||
|
||||
DirectoryPath PROFILE_PATH = EnvironmentVariable ("USERPROFILE") ?? EnvironmentVariable ("HOME");
|
||||
DirectoryPath NUGET_PACKAGES = EnvironmentVariable ("NUGET_PACKAGES") ?? PROFILE_PATH.Combine (".nuget/packages");
|
||||
|
||||
var FEATURE_NAME = EnvironmentVariable ("FEATURE_NAME") ?? "";
|
||||
var BUILD_NUMBER = EnvironmentVariable ("BUILD_NUMBER") ?? "";
|
||||
if (string.IsNullOrEmpty (BUILD_NUMBER)) {
|
||||
|
@ -215,11 +215,11 @@ Task ("samples")
|
|||
};
|
||||
|
||||
var platformMatrix = new Dictionary<string, string> {
|
||||
{ "ios", "iPhone" },
|
||||
{ "ios", "iPhoneSimulator" },
|
||||
{ "tvos", "iPhoneSimulator" },
|
||||
{ "uwp", "x86" },
|
||||
{ "watchos", "iPhoneSimulator" },
|
||||
{ "xamarin.forms.mac", "iPhone" },
|
||||
{ "xamarin.forms.mac", "iPhoneSimulator" },
|
||||
{ "xamarin.forms.windows", "x86" },
|
||||
};
|
||||
|
||||
|
@ -558,7 +558,10 @@ var envVarsWhitelist = new [] {
|
|||
"processor_identifier", "node_name", "node_labels", "branch_name",
|
||||
"os", "build_url", "build_number", "number_of_processors",
|
||||
"node_label", "build_id", "git_sha", "git_branch_name",
|
||||
"feature_name"
|
||||
"feature_name", "msbuild_exe", "python_exe",
|
||||
"home", "userprofile", "nuget_packages",
|
||||
"android_sdk_root", "android_ndk_root",
|
||||
"android_home", "android_ndk_home", "tizen_studio_home"
|
||||
};
|
||||
var envVars = EnvironmentVariables ();
|
||||
var max = envVars.Max (v => v.Key.Length) + 2;
|
||||
|
|
|
@ -592,10 +592,10 @@ Task ("externals-linux")
|
|||
$"is_official_build=true skia_enable_tools=false " +
|
||||
$"target_os='linux' target_cpu='{arch}' " +
|
||||
$"skia_use_icu=false skia_use_sfntly=false skia_use_piex=true " +
|
||||
$"skia_use_system_expat=false skia_use_system_freetype2=true skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false " +
|
||||
$"skia_use_system_expat=false skia_use_system_freetype2=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false " +
|
||||
$"skia_enable_gpu={(SUPPORT_GPU ? "true" : "false")} " +
|
||||
$"extra_cflags=[ '-DSKIA_C_DLL' ] " +
|
||||
$"extra_ldflags=[ ] " +
|
||||
$"extra_ldflags=[ '-static-libstdc++', '-static-libgcc' ] " +
|
||||
$"{CUSTOM_COMPILERS} " +
|
||||
$"linux_soname_version='{soname}'");
|
||||
|
||||
|
|
|
@ -0,0 +1,459 @@
|
|||
# TODO: implement features
|
||||
# TODO: download signed packages
|
||||
|
||||
trigger:
|
||||
- master
|
||||
|
||||
variables:
|
||||
FeatureNamePrefix: 'feature/'
|
||||
FeatureName: ''
|
||||
VERBOSITY: normal
|
||||
GIT_SHA: $(Build.SourceVersion)
|
||||
GIT_BRANCH_NAME: $(Build.SourceBranchName)
|
||||
BUILD_NUMBER: $(Build.BuildId)
|
||||
FEATURE_NAME: $(FeatureName)
|
||||
BASE_LINUX_PACKAGES: curl mono-complete msbuild
|
||||
NATIVE_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) python git libfontconfig1-dev clang-3.8 make
|
||||
TIZEN_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) python git openjdk-8-jdk zip libxcb-xfixes0 libxcb-render-util0 libwebkitgtk-1.0-0 libxcb-image0 acl libsdl1.2debian libv4l-0 libxcb-randr0 libxcb-shape0 libxcb-icccm4 libsm6 gettext rpm2cpio cpio bridge-utils openvpn
|
||||
MANAGED_LINUX_PACKAGES: $(BASE_LINUX_PACKAGES) dotnet-sdk-2.1 ttf-ancient-fonts
|
||||
|
||||
jobs:
|
||||
- job: test_certs
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- task: InstallAppleCertificate@2
|
||||
displayName: Install iOS Certificate
|
||||
inputs:
|
||||
certSecureFile: 'b3a4ff8b-b7d7-40c6-a159-d4778979e299'
|
||||
- task: InstallAppleCertificate@2
|
||||
displayName: Install macOS Certificate
|
||||
inputs:
|
||||
certSecureFile: 'b7392ee6-5d68-4142-8002-13940dcddbb3'
|
||||
- task: InstallAppleProvisioningProfile@1
|
||||
displayName: Install iOS Provisioning Profile
|
||||
inputs:
|
||||
provProfileSecureFile: 'dbd66aa7-92c7-46c5-8d9a-10d31cffe168'
|
||||
- task: InstallAppleProvisioningProfile@1
|
||||
displayName: Install macOS Provisioning Profile
|
||||
inputs:
|
||||
provProfileSecureFile: '29730498-6c7b-46ea-ac53-8918528ead5d'
|
||||
- task: InstallAppleProvisioningProfile@1
|
||||
displayName: Install tvOS Provisioning Profile
|
||||
inputs:
|
||||
provProfileSecureFile: 'fcace840-a805-4f55-b7d1-aa471c9dfeb2'
|
||||
|
||||
# NATIVE JOBS - WINDOWS
|
||||
- job: native_android_windows
|
||||
displayName: Build Native Android (Windows)
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '2.7'
|
||||
architecture: 'x64'
|
||||
- powershell: .\scripts\install-android-ndk.ps1
|
||||
- powershell: .\bootstrapper.ps1 -t externals-android -v $env:VERBOSITY
|
||||
env:
|
||||
ANDROID_NDK_HOME: $(USERPROFILE)\android-ndk
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-android-windows
|
||||
targetPath: 'output'
|
||||
- job: native_tizen_windows
|
||||
displayName: Build Native Tizen (Windows)
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '2.7'
|
||||
architecture: 'x64'
|
||||
- powershell: .\scripts\install-tizen.ps1
|
||||
- powershell: .\bootstrapper.ps1 -t externals-tizen -v $env:VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tizen-windows
|
||||
targetPath: 'output'
|
||||
- job: native_uwp_windows
|
||||
displayName: Build Native UWP (Windows)
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '2.7'
|
||||
architecture: 'x64'
|
||||
- powershell: .\bootstrapper.ps1 -t externals-uwp -v $env:VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-uwp-windows
|
||||
targetPath: 'output'
|
||||
- job: native_win32_windows
|
||||
displayName: Build Native Win32 (Windows)
|
||||
timeoutInMinutes: 120
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: UsePythonVersion@0
|
||||
inputs:
|
||||
versionSpec: '2.7'
|
||||
architecture: 'x64'
|
||||
- powershell: .\bootstrapper.ps1 -t externals-windows -v $env:VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-win32-windows
|
||||
targetPath: 'output'
|
||||
|
||||
# NATIVE JOBS - MAC
|
||||
- job: native_android_macos
|
||||
displayName: Build Native Android (macOS)
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- bash: ./scripts/install-android-ndk.sh
|
||||
- bash: ./bootstrapper.sh -t externals-android -v $VERBOSITY
|
||||
env:
|
||||
ANDROID_NDK_HOME: $(HOME)/android-ndk
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-android-macos
|
||||
targetPath: 'output'
|
||||
- job: native_ios_macos
|
||||
displayName: Build Native iOS (macOS)
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- bash: ./bootstrapper.sh -t externals-ios -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-ios-macos
|
||||
targetPath: 'output'
|
||||
- job: native_macos_macos
|
||||
displayName: Build Native macOS (macOS)
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- bash: ./bootstrapper.sh -t externals-macos -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-macos-macos
|
||||
targetPath: 'output'
|
||||
- job: native_tizen_macos
|
||||
displayName: Build Native Tizen (macOS)
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- bash: ./scripts/install-tizen.sh
|
||||
- bash: ./bootstrapper.sh -t externals-tizen -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tizen-macos
|
||||
targetPath: 'output'
|
||||
- job: native_tvos_macos
|
||||
displayName: Build Native tvOS (macOS)
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- bash: ./bootstrapper.sh -t externals-tvos -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tvos-macos
|
||||
targetPath: 'output'
|
||||
- job: native_watchos_macos
|
||||
displayName: Build Native watchOS (macOS)
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- bash: ./bootstrapper.sh -t externals-watchos -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-watchos-macos
|
||||
targetPath: 'output'
|
||||
|
||||
# NATIVE JOBS - LINUX
|
||||
- job: native_linux_linux
|
||||
displayName: Build Native Linux (Linux)
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
container: ubuntu:14.04
|
||||
steps:
|
||||
- bash: |
|
||||
sudo apt update
|
||||
sudo apt install -y apt-transport-https
|
||||
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
|
||||
echo "deb https://download.mono-project.com/repo/ubuntu stable-trusty main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
|
||||
sudo apt update
|
||||
sudo apt install -y $NATIVE_LINUX_PACKAGES
|
||||
- bash: ./bootstrapper.sh -t externals-linux -v $VERBOSITY
|
||||
env:
|
||||
CC: clang-3.8
|
||||
CXX: clang++-3.8
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-linux-linux
|
||||
targetPath: 'output'
|
||||
- job: native_tizen_linux
|
||||
displayName: Build Native Tizen (Linux)
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- bash: |
|
||||
sudo apt update
|
||||
sudo apt install -y $TIZEN_LINUX_PACKAGES
|
||||
- bash: ./scripts/install-tizen.sh
|
||||
- bash: ./bootstrapper.sh -t externals-tizen -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tizen-linux
|
||||
targetPath: 'output'
|
||||
|
||||
# MANAGED JOBS
|
||||
- job: managed_windows
|
||||
displayName: Build Managed (Windows)
|
||||
dependsOn:
|
||||
- native_android_windows
|
||||
- native_tizen_windows
|
||||
- native_uwp_windows
|
||||
- native_win32_windows
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-android-windows
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tizen-windows
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-uwp-windows
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-win32-windows
|
||||
targetPath: 'output'
|
||||
- powershell: .\bootstrapper.ps1 -t libs-only -v $env:VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-windows
|
||||
targetPath: 'output'
|
||||
- job: managed_macos
|
||||
displayName: Build Managed (macOS)
|
||||
dependsOn:
|
||||
- native_android_macos
|
||||
- native_ios_macos
|
||||
- native_macos_macos
|
||||
- native_tizen_macos
|
||||
- native_tvos_macos
|
||||
- native_watchos_macos
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-android-macos
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-ios-macos
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-macos-macos
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tizen-macos
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tvos-macos
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-watchos-macos
|
||||
targetPath: 'output'
|
||||
- bash: ./bootstrapper.sh -t libs-only -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-macos
|
||||
targetPath: 'output'
|
||||
- job: managed_linux
|
||||
displayName: Build Managed (Linux)
|
||||
dependsOn:
|
||||
- native_linux_linux
|
||||
- native_tizen_linux
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- bash: |
|
||||
sudo apt update
|
||||
sudo apt install -y $MANAGED_LINUX_PACKAGES
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-linux-linux
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: native-tizen-linux
|
||||
targetPath: 'output'
|
||||
- bash: ./bootstrapper.sh -t libs-only -v $VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-linux
|
||||
targetPath: 'output'
|
||||
|
||||
# PACKAGING JOBS
|
||||
- job: package
|
||||
displayName: Package NuGets
|
||||
dependsOn:
|
||||
- managed_linux
|
||||
- managed_macos
|
||||
- managed_windows
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-linux
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-macos
|
||||
targetPath: 'output'
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-windows
|
||||
targetPath: 'output'
|
||||
- powershell: .\bootstrapper.ps1 -t nuget-only -v $env:VERBOSITY
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: nugets-unsigned
|
||||
targetPath: 'output/nugets'
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: package
|
||||
targetPath: 'output'
|
||||
- job: signing
|
||||
displayName: Signing NuGets
|
||||
dependsOn: package
|
||||
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'],'refs/tags/'))
|
||||
pool:
|
||||
name: VSEng-XamarinCustom
|
||||
steps:
|
||||
- task: JenkinsQueueJob@2
|
||||
displayName: 'Sign NuGets'
|
||||
inputs:
|
||||
serverEndpoint: 'Xamarin Code Signing Jenkins'
|
||||
jobName: 'sign-from-vsts'
|
||||
isParameterizedJob: true
|
||||
jobParameters: |
|
||||
REPO=mono/SkiaSharp
|
||||
COMMIT=$(Build.SourceVersion)
|
||||
JOB_ID=10789
|
||||
BUILD_ID=$(Build.BuildId)
|
||||
# TODO: download artifacts from jenkins
|
||||
# - task: PublishBuildArtifacts@1
|
||||
# inputs:
|
||||
# ArtifactName: nugets-signed
|
||||
|
||||
# TEST JOBS
|
||||
- job: tests_windows
|
||||
displayName: Tests (Windows)
|
||||
dependsOn:
|
||||
- package
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: package
|
||||
targetPath: 'output'
|
||||
- powershell: .\bootstrapper.ps1 -t tests-only -v $env:VERBOSITY
|
||||
- task: PublishTestResults@2
|
||||
inputs:
|
||||
testResultsFormat: xUnit
|
||||
testResultsFiles: 'output/tests/**/*.xml'
|
||||
- job: tests_macos
|
||||
displayName: Test (macOS)
|
||||
dependsOn:
|
||||
- package
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: package
|
||||
targetPath: 'output'
|
||||
- bash: ./bootstrapper.sh -t tests-only -v $VERBOSITY
|
||||
- task: PublishTestResults@2
|
||||
inputs:
|
||||
testResultsFormat: xUnit
|
||||
testResultsFiles: 'output/tests/**/*.xml'
|
||||
- job: tests_linux
|
||||
displayName: Tests (Linux)
|
||||
dependsOn:
|
||||
- package
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- bash: |
|
||||
sudo apt update
|
||||
sudo apt install -y $MANAGED_LINUX_PACKAGES
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: package
|
||||
targetPath: 'output'
|
||||
- bash: ./bootstrapper.sh -t tests-only -v $VERBOSITY
|
||||
- task: PublishTestResults@2
|
||||
inputs:
|
||||
testResultsFormat: xUnit
|
||||
testResultsFiles: 'output/tests/**/*.xml'
|
||||
|
||||
# SAMPLES JOBS
|
||||
- job: samples_windows
|
||||
displayName: Build Samples (Windows)
|
||||
dependsOn:
|
||||
- managed_windows
|
||||
pool:
|
||||
vmImage: vs2017-win2016
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-windows
|
||||
targetPath: 'output'
|
||||
- powershell: .\bootstrapper.ps1 -t samples -v $env:VERBOSITY
|
||||
- job: samples_macos
|
||||
displayName: Build Samples (macOS)
|
||||
dependsOn:
|
||||
- managed_macos
|
||||
pool:
|
||||
vmImage: macos-10.13
|
||||
steps:
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-macos
|
||||
targetPath: 'output'
|
||||
- bash: ./bootstrapper.sh -t samples -v $VERBOSITY
|
||||
- job: samples_linux
|
||||
displayName: Build Samples (Linux)
|
||||
dependsOn:
|
||||
- managed_linux
|
||||
pool:
|
||||
vmImage: ubuntu-16.04
|
||||
steps:
|
||||
- bash: |
|
||||
sudo apt update
|
||||
sudo apt install -y $MANAGED_LINUX_PACKAGES
|
||||
- task: DownloadPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: managed-linux
|
||||
targetPath: 'output'
|
||||
- bash: ./bootstrapper.sh -t samples -v $VERBOSITY
|
|
@ -45,10 +45,10 @@ CUSTOM_COMPILERS=
|
|||
is_official_build=true skia_enable_tools=false
|
||||
target_os=\"linux\" target_cpu=\"$ARCH\"
|
||||
skia_use_icu=false skia_use_sfntly=false skia_use_piex=true
|
||||
skia_use_system_expat=false skia_use_system_freetype2=true skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false
|
||||
skia_use_system_expat=false skia_use_system_freetype2=false skia_use_system_libjpeg_turbo=false skia_use_system_libpng=false skia_use_system_libwebp=false skia_use_system_zlib=false
|
||||
skia_enable_gpu=true
|
||||
extra_cflags=[ \"-DSKIA_C_DLL\" ]
|
||||
extra_ldflags=[ ]
|
||||
extra_ldflags=[ \"-static-libstdc++\", \"-static-libgcc\" ]
|
||||
$CUSTOM_COMPILERS
|
||||
linux_soname_version=\"$SONAME\"")
|
||||
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
$errorActionPreference = 'Stop'
|
||||
|
||||
Add-Type -AssemblyName System.IO.Compression.FileSystem
|
||||
|
||||
# download ndk
|
||||
Write-Host "Downloading Android NDK..."
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\android-ndk-temp" | Out-Null
|
||||
(New-Object System.Net.WebClient).DownloadFile(
|
||||
"https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zip",
|
||||
"$env:USERPROFILE\android-ndk-temp\android-ndk.zip")
|
||||
|
||||
# unzip ndk
|
||||
Write-Host "Extracting Android NDK..."
|
||||
[System.IO.Compression.ZipFile]::ExtractToDirectory(
|
||||
"$env:USERPROFILE\android-ndk-temp\android-ndk.zip",
|
||||
"$env:USERPROFILE\android-ndk-temp")
|
||||
|
||||
Write-Host "Moving Android NDK..."
|
||||
Move-Item "$env:USERPROFILE\android-ndk-temp\android-ndk-r15c" "$env:USERPROFILE\android-ndk"
|
||||
|
||||
exit $LASTEXITCODE
|
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
mkdir -p ~/android-ndk-temp
|
||||
cd ~/android-ndk-temp
|
||||
|
||||
# detect platform
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
platform="darwin-x86_64"
|
||||
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
platform="linux-x86_64"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# download ndk
|
||||
curl -L -o "android-ndk.zip" "https://dl.google.com/android/repository/android-ndk-r15c-$platform.zip"
|
||||
|
||||
# unzip ndk
|
||||
unzip android-ndk.zip
|
||||
mv ./android-ndk-r15c ~/android-ndk
|
|
@ -0,0 +1,19 @@
|
|||
$errorActionPreference = 'Stop'
|
||||
|
||||
$url = "http://download.tizen.org/sdk/Installer/tizen-studio_2.4/web-cli_Tizen_Studio_2.4_windows-64.exe"
|
||||
$ts = "$env:USERPROFILE\tizen-studio"
|
||||
$install = "$env:USERPROFILE\tizen-temp\tizen-install.exe"
|
||||
$packages = "MOBILE-4.0,MOBILE-4.0-NativeAppDevelopment"
|
||||
|
||||
# download tizen
|
||||
Write-Host "Downloading Tizen SDK..."
|
||||
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\tizen-temp" | Out-Null
|
||||
(New-Object System.Net.WebClient).DownloadFile("$url", "$install")
|
||||
|
||||
# install tizen
|
||||
& "$install" --accept-license --no-java-check "$ts"
|
||||
|
||||
# install packages
|
||||
& "$ts\package-manager\package-manager-cli.exe" install --no-java-check --accept-license $packages
|
||||
|
||||
exit $LASTEXITCODE
|
|
@ -1,15 +1,26 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# detect platform
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
platform="macos-64"
|
||||
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
||||
platform="ubuntu-64"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
url=http://download.tizen.org/sdk/Installer/tizen-studio_2.4/web-cli_Tizen_Studio_2.4_$platform.bin
|
||||
packages=MOBILE-4.0,MOBILE-4.0-NativeAppDevelopment
|
||||
bin=~/tizen-temp/tizen-install.bin
|
||||
|
||||
# download tizen
|
||||
mkdir -p ~/tizen-temp
|
||||
cd ~/tizen-temp
|
||||
curl -L -o "tizen-install.bin" http://download.tizen.org/sdk/Installer/tizen-studio_2.4/web-cli_Tizen_Studio_2.4_ubuntu-64.bin
|
||||
curl -L -o "$bin" "$url"
|
||||
|
||||
# install tizen
|
||||
chmod +x tizen-install.bin
|
||||
./tizen-install.bin --accept-license --no-java-check ~/tizen-studio
|
||||
chmod +x $bin
|
||||
bash $bin --accept-license --no-java-check ~/tizen-studio
|
||||
|
||||
# install packages
|
||||
cd ~/tizen-studio
|
||||
./package-manager/package-manager-cli.bin install --no-java-check --accept-license MOBILE-4.0,MOBILE-4.0-NativeAppDevelopment
|
||||
bash ~/tizen-studio/package-manager/package-manager-cli.bin install --no-java-check --accept-license $packages
|
||||
|
|
|
@ -10,7 +10,7 @@ import groovy.transform.Field
|
|||
@Field def featureNamePrefix = "feature/"
|
||||
|
||||
@Field def minimalLinuxPackages = "curl mono-complete msbuild"
|
||||
@Field def nativeLinuxPackages = "python git libfontconfig1-dev"
|
||||
@Field def nativeLinuxPackages = "python git libfontconfig1-dev clang-3.8"
|
||||
@Field def nativeTizenPackages = "python git openjdk-8-jdk zip libxcb-xfixes0 libxcb-render-util0 libwebkitgtk-1.0-0 libxcb-image0 acl libsdl1.2debian libv4l-0 libxcb-randr0 libxcb-shape0 libxcb-icccm4 libsm6 gettext rpm2cpio cpio bridge-utils openvpn"
|
||||
@Field def managedLinuxPackages = "dotnet-sdk-2.1 ttf-ancient-fonts"
|
||||
|
||||
|
@ -26,6 +26,8 @@ import groovy.transform.Field
|
|||
"ANDROID_NDK_HOME=/Users/builder/Library/Developer/Xamarin/android-ndk",
|
||||
],
|
||||
"linux": [
|
||||
"CC=clang-3.8",
|
||||
"CXX=clang++-3.8",
|
||||
]
|
||||
]
|
||||
|
||||
|
@ -85,7 +87,7 @@ node("ubuntu-1604-amd64") {
|
|||
watchos: createNativeBuilder("watchOS", "macOS", "components", ""),
|
||||
|
||||
// linux
|
||||
linux: createNativeBuilder("Linux", "Linux", "ubuntu-1604-amd64", nativeLinuxPackages),
|
||||
linux: createNativeBuilder("Linux", "Linux", "ubuntu-1404-amd64", nativeLinuxPackages),
|
||||
tizen_linux: createNativeBuilder("Tizen", "Linux", "ubuntu-1604-amd64", nativeTizenPackages),
|
||||
])
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ namespace SkiaSharp.Tests
|
|||
}
|
||||
|
||||
// Test for issue #282
|
||||
[SkippableFact(Skip = "Known to fail, see: https://github.com/mono/SkiaSharp/issues/282")]
|
||||
public void DrawTransparentImageWithHighFilterQualityWithUnpremul()
|
||||
{
|
||||
var oceanColor = (SKColor)0xFF9EB4D6;
|
||||
|
|
Загрузка…
Ссылка в новой задаче