summaryrefslogtreecommitdiff
path: root/.appveyor.yml
blob: 0ffa7323dcfc5736caf5522b73d03f09160c617a (plain)
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
version : 2.x.{build}

clone_folder: C:\Project

environment:
    global:
        # MSVC Express 2008's setenv.cmd failes if /E:ON and /V:ON are not
        # enabled in the batch script interpreter
        CMD_IN_ENV: cmd /E:ON /V:ON /C .\appveyor\run_with_env.cmd

    matrix:
        # For Python versions available on Appveyor, see
        # https://www.appveyor.com/docs/build-environment/
      - {PYVER: "27", PYTHON_ARCH: "32"}
      - {PYVER: "27", PYTHON_ARCH: "64"}
      - {PYVER: "37", PYTHON_ARCH: "32"}
      - {PYVER: "37", PYTHON_ARCH: "64"}
      - {PYVER: "36", PYTHON_ARCH: "32"}
      - {PYVER: "36", PYTHON_ARCH: "64"}
      - {PYVER: "35", PYTHON_ARCH: "32"}
      - {PYVER: "35", PYTHON_ARCH: "64"}
      - {PYVER: "34", PYTHON_ARCH: "32"}
      - {PYVER: "34", PYTHON_ARCH: "64"}

    OPENSSL_VERSION: "1_1_1b"
    POSTGRES_VERSION: "11_2"

    PSYCOPG2_TESTDB: psycopg2_test
    PSYCOPG2_TESTDB_USER: postgres
    PSYCOPG2_TESTDB_HOST: localhost

    PGUSER: postgres
    PGPASSWORD: Password12!

    # The python used in the build process, not the one packages are built for
    PYEXE: C:\Python36\python.exe

matrix:
    fast_finish: false

services:
    # Note: if you change this service also change the paths to match
    # (see where Program Files\Postgres\9.6 is used)
    - postgresql96

cache:
  # Rebuild cache if following file changes
  # (See the file to zap the cache manually)
  - C:\Others -> scripts\appveyor.cache_rebuild

# Script called before repo cloning
init:
    # TODO: move functionalities out of init to drop this fetch problem
    - curl -fsSL -o "C:\\appveyor.py" https://raw.githubusercontent.com/psycopg/psycopg2/%APPVEYOR_REPO_COMMIT%/scripts/appveyor.py
    - "%PYEXE% C:\\appveyor.py init"

    # TODO: exporting variables below to be dropped once all the steps are
    # moved to the appveyor.py script.

    # Set env variable according to the build environment
    - SET PYTHON=C:\Python%PYVER%
    - IF "%PYTHON_ARCH%"=="64" SET PYTHON=%PYTHON%-x64

      # Py 2.7 = VS Ver. 9.0  (VS 2008)
      # Py 3.4 = VS Ver. 10.0 (VS 2010)
      # Py 3.5, 3.6, 3.7 = VS Ver. 14.0 (VS 2015)
    - IF "%PYVER%"=="27" SET VS_VER=9.0
    - IF "%PYVER%"=="34" SET VS_VER=10.0
    - IF "%PYVER%"=="35" SET VS_VER=14.0
    - IF "%PYVER%"=="36" SET VS_VER=14.0
    - IF "%PYVER%"=="37" SET VS_VER=14.0

    - IF "%VS_VER%"=="10.0" IF "%PYTHON_ARCH%"=="64" SET DISTUTILS_USE_SDK=1

    # Set Python to the path
    - SET PATH=%PYTHON%;%PYTHON%\Scripts;C:\Program Files\Git\mingw64\bin;%PATH%

    # Setup the compiler based upon version and architecture
    - ECHO Configuring Compiler
    - IF "%PYTHON_ARCH%"=="32" (CALL "C:\\Program Files (x86)\\Microsoft Visual Studio %VS_VER%\\VC\\vcvarsall.bat" x86)
    - IF "%PYTHON_ARCH%"=="64" (CALL "C:\\Program Files (x86)\\Microsoft Visual Studio %VS_VER%\\VC\\vcvarsall.bat" amd64)


# Repository gets cloned, Cache is restored

install:
    - "%PYEXE% C:\\appveyor.py install"

# PostgreSQL server starts now

build: off

build_script:
    - "%PYEXE% C:\\appveyor.py build_script"


before_test:
    # Create and setup PostgreSQL database for the tests
    - createdb %PSYCOPG2_TESTDB%
    - psql -d %PSYCOPG2_TESTDB% -c "CREATE EXTENSION HSTORE;"

test_script:
    # Print psycopg and libpq versions
    - "%PYTHON%\\python.exe -c \"import psycopg2; print(psycopg2.__version__)\""
    - "%PYTHON%\\python.exe -c \"import psycopg2; print(psycopg2.__libpq_version__)\""
    - "%PYTHON%\\python.exe -c \"import psycopg2; print(psycopg2.extensions.libpq_version())\""
    - "%PYTHON%\\python.exe -c \"import tests; tests.unittest.main(defaultTest='tests.test_suite')\" --verbose"


# vim: set ts=4 sts=4 sw=4: