summaryrefslogtreecommitdiff
path: root/appveyor.yml
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2017-07-03 08:33:36 +0100
committerChris Wilson <chris+github@qwirx.com>2017-09-16 20:50:50 +0100
commitc0ff77b8a73e0b7804a9eac26b59603e06d1cbc0 (patch)
tree772203122b2676212fcfeeb0fecefc2ef725c874 /appveyor.yml
parentb1f564266c64b48b99cce410e33d8287bf444d2a (diff)
Build Win32/64 binary packages automatically
Every AppVeyor build on the specified branches that passes will be packaged into a ZIP file and installer using CPack and uploaded to GitHub Releases. Generate version number entirely in AppVeyor config, and build it into the binary, and use it in the names of the created binary packages, and compile it into the binaries. (cherry picked from commit c5d8173bf03ab9fa93d3b3ffd871b378b0819567)
Diffstat (limited to 'appveyor.yml')
-rw-r--r--appveyor.yml59
1 files changed, 48 insertions, 11 deletions
diff --git a/appveyor.yml b/appveyor.yml
index a0ccf95c..0ca5d8ee 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,4 +1,4 @@
-version: 1.0.{build}-{branch}
+version: 0.12.{branch}.appveyor_{build}
clone_depth: 1
@@ -8,25 +8,34 @@ skip_tags: true
os: Windows Server 2012
platform:
-# - x86
-# - x64
- - Win32
+ - Win32 # CMake sucks
+ - x64
configuration:
- Debug
- Release
environment:
- VisualStudioVersion: 10.0
- Generator: Visual Studio 10
+ VisualStudioVersion: 11.0
+ Generator_Base: Visual Studio 11 2012
OPENSSL_VERSION: 1.0.2f
PCRE_VERSION: 8.38
CMAKE_UNIBUILD_DIR: '%APPVEYOR_BUILD_FOLDER%\..\cmake'
+ BOXBACKUP_VERSION_BASE: 0.12
init:
# Uncomment the following two lines to enable RDP access to the virtual machine for debugging.
# - reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
+ - ps: $env:date_string = Get-Date -Format "yyMMdd"
+ - ps: $env:sane_platform = $($env:PLATFORM.replace("Win32", "x86"))
+ # http://help.appveyor.com/discussions/problems/2874-how-can-i-add-commit-id-to-build-version
+ - ps: $env:boxbackup_version_full="$env:BOXBACKUP_VERSION_BASE.$env:APPVEYOR_REPO_BRANCH.$env:date_string.$($env:APPVEYOR_REPO_COMMIT.substring(0,7))"
+ - ps: Update-AppveyorBuild -Version "$env:boxbackup_version_full"
+ - ps: $env:compiled_version="$($env:boxbackup_version_full)_Win_$($env:sane_platform)_$($env:CONFIGURATION)"
+ # The only way to switch between 32-bit and 64-bit compilers appears to be to append " Win64"
+ # to the generator name if you want a 64-bit build (x64 platform):
+ - ps: $env:generator_name="$($env:Generator_Base)$(if ($env:PLATFORM.equals('x64')) {' Win64'})"
build:
parallel: true
@@ -35,15 +44,15 @@ build:
install:
# test_bbackupd needs 7zip (or cmake -E tar) to extract tar archives on Windows:
- - cinst -y --limit-output 7zip.commandline
- # Install cmake.portable instead of cmake, to get it on the path again:
- # http://disq.us/p/xdknrt
+ - cinst -y --limit-output 7zip.commandline nsis.portable
- dir "c:\Program Files"
- dir "c:\Program Files (x86)"
# We don't need strawberryperl on AppVeyor because there is already a Perl in c:\Perl.
# If you are doing this on a fresh box for development, you would probably want to
# install Chocolatey and then run:
- # cinst -y cmake strawberryperl git vim visualstudio2012wdx
+ # cinst -y cmake.portable strawberryperl git vim visualstudio2012wdx
+ # We install cmake.portable instead of cmake, to get it on the path again
+ # <http://disq.us/p/xdknrt>.
- '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x86'
- if not exist %CMAKE_UNIBUILD_DIR% md %CMAKE_UNIBUILD_DIR%
@@ -51,7 +60,12 @@ install:
# We need to specify the generator here, in case the user has more than one installed.
# CMake always seems to default to the latest version of Visual Studio, not the one on
# the current PATH.
- - cmake -G "%Generator%" -A %PLATFORM% %APPVEYOR_BUILD_FOLDER%\infrastructure\cmake\windows
+ - echo cmake -G "%generator_name%" -DDEBUG=1
+ -DBOXBACKUP_VERSION=%compiled_version%
+ %APPVEYOR_BUILD_FOLDER%\infrastructure\cmake\windows
+ - cmake -G "%generator_name%" -DDEBUG=1
+ -DBOXBACKUP_VERSION=%compiled_version%
+ %APPVEYOR_BUILD_FOLDER%\infrastructure\cmake\windows
# Leave the current directory in the correct place to find the solution file using its relative path above.
@@ -63,3 +77,26 @@ test_script:
# - dir %PLATFORM%\%CONFIGURATION%
- ctest -C %CONFIGURATION% -V --interactive-debug-mode 0
+ # After running tests successfully, and before collecting artifacts, build them and copy them
+ # to the right place:
+ - cmake --build . --config %CONFIGURATION% --target package
+
+ # AppVeyor refuses to package files outside of the project directory, so we need to push them:
+ - dir
+ - appveyor PushArtifact -path BoxBackup-%compiled_version%.zip -DeploymentName BoxBackup-%compiled_version%
+ - appveyor PushArtifact -path BoxBackup-%compiled_version%.exe -DeploymentName BoxBackup-%compiled_version%
+
+deploy:
+ - provider: GitHub
+ release: BoxBackup-$(boxbackup_version_full)
+ artifact: BoxBackup-$(compiled_version)
+ description: "Windows client binaries auto-built by AppVeyor"
+ draft: false
+ prerelease: true
+ auth_token:
+ secure: WZi3MJGA5zIIAAij0if4auYeltJlyWUOePTYlCGvrNrgEVjYRkqILHzvVKDnLn43
+ on:
+ branch:
+ - master
+ - s3_support_merge
+