zeal/.appveyor.yml
Oleg Shparber 2fe4122d9e ci(appveyor): package artifacts in after_build
`before_package` is too late, and artifacts cannot be detected then.
2018-11-06 22:06:22 -05:00

175 lines
5.0 KiB
YAML

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: |-
$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"
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