aboutsummaryrefslogtreecommitdiff
path: root/appveyor.yml
blob: 3c618937e559808e94c79e4c79fda9fdb5c9dfba (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
133
134
135
136
137
138
139
140
# vim ft=yaml
# CI on Windows via appveyor

environment:
  global:
    REPO_DIR: protobuf
    PACKAGE_NAME: protobuf
    BUILD_COMMIT: v3.5.1
    MINGW_32: C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin
    MINGW_64: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin
    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:\Python27
      PYTHON_VERSION: 2.7
      PYTHON_ARCH: 32

    - PYTHON: C:\Python27-x64
      PYTHON_VERSION: 2.7
      PYTHON_ARCH: 64

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

    # 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:\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

    - if %PYTHON%==C:\Python27 set MINGW=%MINGW_32%
    - if %PYTHON%==C:\Python27-x64 set MINGW=%MINGW_64%
    - if %PYTHON%==C:\Python34 set MINGW=%MINGW_32%
    - if %PYTHON%==C:\Python34-x64 set MINGW=%MINGW_64%

    - if %PYTHON_VERSION%==2.7 set generator=MSYS Makefiles
    - if %PYTHON_VERSION%==2.7 set PATH=%MINGW%;%PATH%
    - if %PYTHON_VERSION%==2.7 echo [build] > %PYTHON%\Lib\distutils\distutils.cfg
    - if %PYTHON_VERSION%==2.7 echo.compiler = mingw32 >> %PYTHON%\Lib\distutils\distutils.cfg

    - if %PYTHON_VERSION%==3.4 set generator=MSYS Makefiles
    - if %PYTHON_VERSION%==3.4 set PATH=%MINGW%;%PATH%
    - if %PYTHON_VERSION%==3.4 echo [build] > %PYTHON%\Lib\distutils\distutils.cfg
    - if %PYTHON_VERSION%==3.4 echo.compiler = mingw32 >> %PYTHON%\Lib\distutils\distutils.cfg

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 "import google.protobuf;"
    - 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"