Selaa lähdekoodia

AppVeyor: change config to use Vcpkg-generated deps

There also extended build matrix for toolchain_test branch.
Arseniy Shestakov 8 vuotta sitten
vanhempi
sitoutus
caf0edf618
5 muutettua tiedostoa jossa 119 lisäystä ja 85 poistoa
  1. 71 61
      CI/appveyor.yml
  2. 25 6
      CI/get_package_name.sh
  3. 0 18
      CI/msvc/appveyor_toolchain.txt
  4. 6 0
      CI/msvc/build_script.bat
  5. 17 0
      CI/msvc/install.sh

+ 71 - 61
CI/appveyor.yml

@@ -1,72 +1,82 @@
+# Common configuration for all branches
 version: 1.0.{build}
 max_jobs: 2
 clone_depth: 10
 clone_folder: c:\projects\vcmi\source
-init:
-- cmd: set QTDIR=C:\Qt\5.7\msvc2015
-environment:
-  BUILD_PLATFORM: x86
-  BUILD_CONFIGURATION: Release
 install:
-- cmd: >-
-    cd c:\projects\vcmi\
-
-    curl -fsS -o vcmi_depends_%BUILD_PLATFORM%.zip https://dependencies.vcmi.download/msvc/vcmi_depends_%BUILD_PLATFORM%.zip
-
-    7z x vcmi_depends_%BUILD_PLATFORM%.zip -odepends
-
-    cd source
-
-    git submodule update --init --recursive
-
-    cd ..
-
-    mkdir build_%BUILD_PLATFORM%
-
-    cd build_%BUILD_PLATFORM%
-
-    cmake -DCMAKE_TOOLCHAIN_FILE=../source/CI/msvc/appveyor_toolchain.txt ../source
+- bash c:\projects\vcmi\source\CI\msvc\install.sh
 build_script:
-- cmd: >-
-    cd c:\projects\vcmi\build_%BUILD_PLATFORM%
-
-    msbuild vcmi.sln /p:configuration=%BUILD_CONFIGURATION% /maxcpucount:2
-
-    IF "%APPVEYOR_REPO_TAG%"=="true" cpack
-
-
-    mkdir dist_%BUILD_PLATFORM%
-
-    copy %BUILD_CONFIGURATION%\*.exe dist_%BUILD_PLATFORM%
-
-    copy %BUILD_CONFIGURATION%\*.dll dist_%BUILD_PLATFORM%
-
-    copy %BUILD_CONFIGURATION%\lib\*.dll dist_%BUILD_PLATFORM%
-
-    mkdir dist_%BUILD_PLATFORM%\AI
-
-    copy %BUILD_CONFIGURATION%\AI\*.dll dist_%BUILD_PLATFORM%\AI
-
-    cd dist_%BUILD_PLATFORM%
-
-    mkdir platforms
-
-    copy %QTDIR%\bin\Qt5Core.dll .
-
-    copy %QTDIR%\bin\Qt5Gui.dll .
-
-    copy %QTDIR%\bin\Qt5Widgets.dll .
-
-    copy %QTDIR%\bin\Qt5Network.dll .
-
-    copy %QTDIR%\plugins\platforms\qwindows.dll platforms
-
-    7z a c:\projects\vcmi\source\vcmi-%BUILD_PLATFORM%-%BUILD_CONFIGURATION%.zip * -mx=7 -r -x!*.exp -x!*.lib
-
-    7z a c:\projects\vcmi\source\vcmi-%BUILD_PLATFORM%-%BUILD_CONFIGURATION%.zip c:\projects\vcmi\depends\bin\*.dll -mx=7
+- cmd: c:\projects\vcmi\source\CI\msvc\build_script.bat
 artifacts:
-- path: vcmi-x86-Release.zip
+- path: build_$(VCMI_BUILD_PLATFORM)\*.exe
 notifications:
   - provider: Slack
     incoming_webhook:
       secure: zxT3HTnxL744HiSv7ig7sjGL4LmJ8n3MsY8PEA/kinbVMkmcxrSgVBVkHV79RfSWSyq4oLMSRvMMpG8SuDWnf6oK/qvgaiAWfwwlCIiA7uQ=
+
+# Branch-specific configuration
+for:
+# Extended configuration for toolchain_test branch
+-
+  branches:
+    only:
+      - toolchain_test
+  environment:
+    matrix:
+      - NAME: MSVS 2015 x86 - Release
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+        VCMI_GENERATOR: Visual Studio 14 2015
+        VCMI_BUILD_PLATFORM: x86
+        VCMI_BUILD_CONFIGURATION: Release
+      - NAME: MSVS 2015 x86 - Debug
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+        VCMI_GENERATOR: Visual Studio 14 2015
+        VCMI_BUILD_PLATFORM: x86
+        VCMI_BUILD_CONFIGURATION: Debug
+
+      - NAME: MSVS 2015 x64 - Release
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+        VCMI_GENERATOR: Visual Studio 14 2015 Win64
+        VCMI_BUILD_PLATFORM: x64
+        VCMI_BUILD_CONFIGURATION: Release
+      - NAME: MSVS 2015 x64 - Debug
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+        VCMI_GENERATOR: Visual Studio 14 2015 Win64
+        VCMI_BUILD_PLATFORM: x64
+        VCMI_BUILD_CONFIGURATION: Debug
+
+      - NAME: MSVS 2017 x86 - Release
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+        VCMI_GENERATOR: Visual Studio 15 2017
+        VCMI_BUILD_PLATFORM: x86
+        VCMI_BUILD_CONFIGURATION: Release
+      - NAME: MSVS 2017 x86 - Debug
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+        VCMI_GENERATOR: Visual Studio 15 2017
+        VCMI_BUILD_PLATFORM: x86
+        VCMI_BUILD_CONFIGURATION: Debug
+
+      - NAME: MSVS 2017 x64 - Release
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+        VCMI_GENERATOR: Visual Studio 15 2017 Win64
+        VCMI_BUILD_PLATFORM: x64
+        VCMI_BUILD_CONFIGURATION: Release
+      - NAME: MSVS 2017 x64 - Debug
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+        VCMI_GENERATOR: Visual Studio 15 2017 Win64
+        VCMI_BUILD_PLATFORM: x64
+        VCMI_BUILD_CONFIGURATION: Debug
+# Default configuration for all other branches
+-
+  environment:
+    matrix:
+      - NAME: MSVS 2015 x86 - Release
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+        VCMI_GENERATOR: Visual Studio 14 2015
+        VCMI_BUILD_PLATFORM: x86
+        VCMI_BUILD_CONFIGURATION: Release
+      - NAME: MSVS 2017 x64 - Release
+        APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
+        VCMI_GENERATOR: Visual Studio 15 2017 Win64
+        VCMI_BUILD_PLATFORM: x64
+        VCMI_BUILD_CONFIGURATION: Release

+ 25 - 6
CI/get_package_name.sh

@@ -1,14 +1,33 @@
 #!/bin/sh
-VCMI_PACKAGE_FILE_NAME="${TRAVIS_JOB_ID}-vcmi"
+if [ ! -z "$TRAVIS_JOB_ID" ];
+then
+	echo "Using Travis environment variables!"
+	TMP_JOBID="$TRAVIS_JOB_ID"
+	TMP_BRANCH="$TRAVIS_BRANCH"
+	TMP_PRID="$TRAVIS_PULL_REQUEST"
+	TMP_COMMIT="$TRAVIS_COMMIT"
+elif [ ! -z "${APPVEYOR_JOB_ID}" ];
+then
+	echo "Using AppVeyor environment variables!"
+	TMP_JOBID=$(echo "$APPVEYOR_JOB_ID" | sed 's/[^[:digit:]]\+//g')
+	TMP_BRANCH="$APPVEYOR_REPO_BRANCH"
+	TMP_PRID="$APPVEYOR_PULL_REQUEST_NUMBER"
+	TMP_COMMIT="$APPVEYOR_REPO_COMMIT"
+else
+	echo "No Travir or AppVeyor environment variables found!"
+	exit
+fi
+
+VCMI_PACKAGE_FILE_NAME="${TMP_JOBID}-vcmi"
 VCMI_PACKAGE_NAME_SUFFIX=""
-if [ "$TRAVIS_PULL_REQUEST" = "false" ];
+if [ -z "$TMP_PRID" ];
 then
-	branch_name=$(echo "$TRAVIS_BRANCH" | sed 's/[^[:alnum:]]\+/_/g')
-	VCMI_PACKAGE_FILE_NAME="${VCMI_PACKAGE_FILE_NAME}-branch-${branch_name}-${TRAVIS_COMMIT}"
+	branch_name=$(echo "$TMP_BRANCH" | sed 's/[^[:alnum:]]\+/_/g')
+	VCMI_PACKAGE_FILE_NAME="${VCMI_PACKAGE_FILE_NAME}-branch-${branch_name}-${TMP_COMMIT}"
 	VCMI_PACKAGE_NAME_SUFFIX="branch ${branch_name}"
 else
-	VCMI_PACKAGE_FILE_NAME="${VCMI_PACKAGE_FILE_NAME}-PR-${TRAVIS_PULL_REQUEST}-${TRAVIS_COMMIT}"
-	VCMI_PACKAGE_NAME_SUFFIX="PR ${TRAVIS_PULL_REQUEST}"
+	VCMI_PACKAGE_FILE_NAME="${VCMI_PACKAGE_FILE_NAME}-PR-${TMP_PRID}-${TMP_COMMIT}"
+	VCMI_PACKAGE_NAME_SUFFIX="PR ${TMP_PRID}"
 fi
 VCMI_PACKAGE_NAME_SUFFIX="(${VCMI_PACKAGE_NAME_SUFFIX})"
 

+ 0 - 18
CI/msvc/appveyor_toolchain.txt

@@ -1,18 +0,0 @@
-SET(CMAKE_SYSTEM_NAME Windows)
-SET(VCMIBUILD_DIR c:/projects/vcmi)
-
-SET(CMAKE_C_COMPILER   cl)
-SET(CMAKE_CXX_COMPILER cl)
-set(CMAKE_RC_COMPILER rc)
-
-
-SET(ENV{BOOST_ROOT} C:/Libraries/boost_1_60_0)
-SET(ENV{BOOST_LIBRARYDIR} C:/Libraries/boost_1_60_0/lib32-msvc-14.0)
-
-SET(CMAKE_FIND_ROOT_PATH  ${VCMIBUILD_DIR}/depends)
-list(APPEND CMAKE_PREFIX_PATH ${CMAKE_FIND_ROOT_PATH})
-list(APPEND CMAKE_PREFIX_PATH C:/Qt/5.7/msvc2015)
-
-SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
-SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
-SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)

+ 6 - 0
CI/msvc/build_script.bat

@@ -0,0 +1,6 @@
+cd %APPVEYOR_BUILD_FOLDER%
+cd build_%VCMI_BUILD_PLATFORM%
+
+cmake --build . --config %VCMI_BUILD_CONFIGURATION% -- /maxcpucount:2
+
+cpack

+ 17 - 0
CI/msvc/install.sh

@@ -0,0 +1,17 @@
+cd $APPVEYOR_BUILD_FOLDER
+git submodule update --init --recursive
+
+cd ..
+
+curl -LfsS -o "vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v140.7z" \
+	"https://github.com/vcmi/vcmi-deps-windows/releases/download/v1/vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v140.7z"
+7z x "vcpkg-export-${VCMI_BUILD_PLATFORM}-windows-v140.7z"
+
+cd $APPVEYOR_BUILD_FOLDER
+mkdir build_$VCMI_BUILD_PLATFORM
+cd build_$VCMI_BUILD_PLATFORM
+
+source $APPVEYOR_BUILD_FOLDER/CI/get_package_name.sh
+cmake -G "$VCMI_GENERATOR" .. -DCMAKE_TOOLCHAIN_FILE=$APPVEYOR_BUILD_FOLDER/../vcpkg/scripts/buildsystems/vcpkg.cmake \
+	-DPACKAGE_NAME_SUFFIX:STRING="$VCMI_PACKAGE_NAME_SUFFIX" \
+	-DPACKAGE_FILE_NAME:STRING="$VCMI_PACKAGE_FILE_NAME"