version: '{branch}-{build}' pull_requests: do_not_increment_build_number: true branches: only: - master - stable - /release\/.*/ image: - Visual Studio 2015 - Ubuntu1804 configuration: Release platform: - x86 - x64 environment: APPVEYOR_YML_DISABLE_PS_LINUX: true matrix: - ZEAL_PORTABLE_BUILD: "OFF" - ZEAL_PORTABLE_BUILD: "ON" matrix: exclude: - image: Ubuntu1804 platform: x86 init: - ps: |- if ($Env:PLATFORM -eq "x64") { $Env:QT_ROOT = "C:\Qt\5.11\msvc2015_64" } else { $Env:QT_ROOT = "C:\Qt\5.11\msvc2015" } $Env:Path += ";${Env:QT_ROOT}\bin;C:\Program Files\7-Zip" install: - ps: |- # Install vcpkg toolchain. $Env:VCPKG_ROOT = "c:\projects\vcpkg-export" $vcpkgArchive = "vcpkg-export-20181014.4-${Env:PLATFORM}.7z" appveyor DownloadFile "https://dl.bintray.com/zealdocs/windows-ci/$vcpkgArchive" 7z x $vcpkgArchive -o"${Env:VCPKG_ROOT}" # Install QtWebKit. $qtWebKitArchiveBaseName = "qtwebkit-5.212.0_72cfbd7-qt5111-msvc2015-${Env:PLATFORM}" appveyor Downloadfile "https://dl.bintray.com/zealdocs/windows-ci/$qtWebKitArchiveBaseName.zip" 7z x "$qtWebKitArchiveBaseName.zip" Get-ChildItem ".\$qtWebKitArchiveBaseName" | Copy -Destination ${Env:QT_ROOT} -Recurse -Force - sh: |- sudo apt-get -y -qq update sudo apt-get -y -qq install \ --no-install-recommends \ cmake \ extra-cmake-modules \ qt5-default \ libqt5webkit5-dev \ libqt5x11extras5-dev \ libarchive-dev \ libsqlite3-dev \ libxcb-keysyms1-dev before_build: - ps: |- Write-Output "Source directory: ${Env:APPVEYOR_BUILD_FOLDER}" New-Item -ItemType Directory -Force -Path dist | Out-Null Set-Location -Path dist # Prepare .sln with CMake: $cmakeGenerator = "Visual Studio 14 2015" if ($Env:PLATFORM -eq "x64") { $cmakeGenerator += " Win64" } Write-Output "Generator: $cmakeGenerator" cmake "${Env:APPVEYOR_BUILD_FOLDER}" ` -G "$cmakeGenerator" ` -DZEAL_PORTABLE_BUILD="${Env:ZEAL_PORTABLE_BUILD}" ` -DCMAKE_BUILD_TYPE="${Env:CONFIGURATION}" ` -DCMAKE_PREFIX_PATH="${Env:QT_ROOT}" ` -DCMAKE_TOOLCHAIN_FILE="${Env:VCPKG_ROOT}\scripts\buildsystems\vcpkg.cmake" Set-Location -Path ${Env:APPVEYOR_BUILD_FOLDER} - sh: |- mkdir build cd build cmake .. \ -DZEAL_PORTABLE_BUILD="${ZEAL_PORTABLE_BUILD}" cd .. build_script: - ps: |- msbuild "dist\ALL_BUILD.vcxproj" /m /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" - sh: |- cmake --build build after_build: - ps: |- if ($Env:APPVEYOR_PULL_REQUEST_NUMBER) { Write-Output "Deployment is disabled for pull requests." Exit-AppveyorBuild } $package = "zeal" if ($Env:ZEAL_PORTABLE_BUILD -eq "ON") { $package = $package + "-portable" } if ($Env:APPVEYOR_REPO_BRANCH -eq "master") { $package = $package + "-unstable" } elseif (${env:APPVEYOR_REPO_BRANCH}.StartsWith("release/")) { $package = $package + "-stable" } else { Write-Output "Skipping deployment for this branch..." Exit-AppveyorBuild } $Env:ZEAL_PKG_NAME = $package # TODO: Use APPVEYOR_BUILD_VERSION. $Env:ZEAL_PKG_VERSION = git describe | ForEach-Object {$_ -replace "^v",""} $binaryDir = "dist\bin\Release" $deploymentDir = "${Env:ZEAL_PKG_NAME}-${Env:ZEAL_PKG_VERSION}-windows-${Env:PLATFORM}" Write-Output "Output Directory: $deploymentDir" New-Item -Type directory -Path . -Name "$deploymentDir" -Force | Out-Null & windeployqt ` --no-angle ` --no-compiler-runtime ` --no-opengl-sw ` --no-plugins ` --no-system-d3d-compiler ` --no-translations ` --dir "$deploymentDir" ` "$binaryDir\zeal.exe" function AddItem ($path) { Copy-Item "$path" "$deploymentDir" Write-Host "Added $path" } AddItem "$binaryDir\*" # OpenSSL is a runtime dependency, so copy it manually. AddItem "${Env:VCPKG_ROOT}\installed\${Env:PLATFORM}-windows\bin\libeay32.dll" AddItem "${Env:VCPKG_ROOT}\installed\${Env:PLATFORM}-windows\bin\ssleay32.dll" function AddQtPlugin ($directory, $plugin) { if ( -Not (Test-Path "$deploymentDir\$directory")) { New-Item -ItemType directory -Path "$deploymentDir" -Name "$directory" | Out-Null } Copy-Item "${Env:QT_ROOT}\plugins\$directory\q$plugin.dll" "$deploymentDir\$directory" Write-Host "Added $directory\$plugin.dll" } AddQtPlugin "imageformats" "gif" AddQtPlugin "imageformats" "ico" AddQtPlugin "imageformats" "jpeg" AddQtPlugin "platforms" "windows" AddQtPlugin "styles" "windowsvistastyle" $archiveName = "$deploymentDir.zip" & 7z a -mx=9 "$archiveName" "$deploymentDir" Push-AppveyorArtifact "$archiveName" test: off artifacts: - path: zeal-*.zip deploy: - provider: BinTray username: trollixx api_key: secure: AsKi8j1sR34g/9+B22/dJ49X3Uie8TizgQD7lzNvW2/+deWq7oLyCQQUCrqPjOUY subject: zealdocs repo: windows-ci package: $(ZEAL_PKG_NAME) version: $(ZEAL_PKG_VERSION) publish: true override: true on: branch: stable