aboutsummaryrefslogtreecommitdiff
path: root/appveyor.yml
blob: bd64fa272e29effa5c4ddac688a02eb0a7a17b52 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# vim ft=yaml
# CI on Windows via appveyor

environment:
  global:
    REPO_DIR: protobuf
    PACKAGE_NAME: protobuf
    BUILD_COMMIT: v3.6.0
    BUILD_VERSION: 3.6.0
    BUILD_DLL: OFF
    UNICODE: ON
    PB_TEST_DEP: "six==1.9"
    OTHER_TEST_DEP: "setuptools==38.5.1"
    WHEELHOUSE_UPLOADER_USERNAME: travis-worker

  matrix:
    - PYTHON: C:\Python34
      PYTHON_VERSION: 3.4
      PYTHON_ARCH: 32

    - PYTHON: C:\Python34-x64
      PYTHON_VERSION: 3.4
      PYTHON_ARCH: 64

    - PYTHON: C:\Python35
      PYTHON_VERSION: 3.5
      PYTHON_ARCH: 32

    - PYTHON: C:\Python35-x64
      PYTHON_VERSION: 3.5
      PYTHON_ARCH: 64

    - PYTHON: C:\Python36
      PYTHON_VERSION: 3.6
      PYTHON_ARCH: 32

    - PYTHON: C:\Python36-x64
      PYTHON_VERSION: 3.6
      PYTHON_ARCH: 64

matrix:
    fast_finish: true

install:
    # Fetch submodules
    - git submodule update --init --recursive

    # Prepend newly installed Python to the PATH of this build (this cannot be
    # done from inside the powershell script as it would require to restart
    # the parent CMD process).
    - SET PATH=%PYTHON%;%PYTHON%\Scripts;%PATH%
    - python -m pip install -U pip
    - pip install wheel

    # Fix MSVC builds for 64-bit Python. See:
    # http://stackoverflow.com/questions/32091593/cannot-install-windows-sdk-7-1-on-windows-10
    - echo "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 > "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64/vcvars64.bat"

    # Fix MSVC builds for 64-bit Python2.7. See:
    # https://help.appveyor.com/discussions/kb/38-visual-studio-2008-64-bit-builds
    - curl -L -o vs2008_patch.zip https://github.com/menpo/condaci/raw/master/vs2008_patch.zip
    - 7z x vs2008_patch.zip -ovs2008_patch
    - cd vs2008_patch
    - CALL setup_x64.bat
    - dir "C:\Program Files (x86)\"
    - copy "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars64.bat" "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\amd64\vcvarsamd64.bat"
    - cd ..

    # Check that we have the expected version and architecture for Python
    - python --version
    - python -c "import struct; print(struct.calcsize('P') * 8)"

    # Install zlib
    - mkdir zlib
    - curl -L -o zlib.zip http://www.winimage.com/zLibDll/zlib123dll.zip
    - curl -L -o zlib-src.zip http://www.winimage.com/zLibDll/zlib123.zip
    - 7z x zlib.zip -ozlib
    - 7z x zlib-src.zip -ozlib\include
    - SET ZLIB_ROOT=%cd%\zlib
    - del /Q zlib.zip
    - del /Q zlib-src.zip

before_build:
    - if %PYTHON%==C:\Python34 set generator=Visual Studio 10 2010
    - if %PYTHON%==C:\Python34 set vcplatform=Win32

    - if %PYTHON%==C:\Python34-x64 set generator=Visual Studio 10 2010 Win64
    - if %PYTHON%==C:\Python34-x64 set vcplatform=x64

    - if %PYTHON%==C:\Python35 set generator=Visual Studio 14
    - if %PYTHON%==C:\Python35 set vcplatform=Win32

    - if %PYTHON%==C:\Python35-x64 set generator=Visual Studio 14 Win64
    - if %PYTHON%==C:\Python35-x64 set vcplatform=x64

    - if %PYTHON%==C:\Python36 set generator=Visual Studio 14
    - if %PYTHON%==C:\Python36 set vcplatform=Win32

    - if %PYTHON%==C:\Python36-x64 set generator=Visual Studio 14 Win64
    - if %PYTHON%==C:\Python36-x64 set vcplatform=x64

build_script:
    - CALL appveyor.bat

test_script:
    # create test env
    - virtualenv --python %PYTHON%\Python.exe test_env
    - test_env\Scripts\activate.bat
    - where python
    - pip install %PB_TEST_DEP%

    # install from wheel
    - pip install --pre --no-index --find-links %REPO_DIR%\python\dist\ %PACKAGE_NAME%

    # Change into an innocuous directory and find tests from installation
    - mkdir for_testing
    - cd for_testing
    - python --version
    - python -c "from google.protobuf.pyext import _message;"
    - cd ..

artifacts:
    - path: "%REPO_DIR%\\python\\dist\\*"

on_success:
  # # Upload the generated wheel package to Rackspace
  # # On Windows, Apache Libcloud cannot find a standard CA cert bundle so we
  # # disable the ssl checks.
  # - pip install wheelhouse-uploader
  # - "python -m wheelhouse_uploader upload
  #   --no-ssl-check --local-folder=%REPO_DIR%\\dist --no-update-index wheels"