summaryrefslogtreecommitdiff
path: root/appveyor.yml
blob: 83e570ae12fb8690575f3f5b3eae1bf69c789d8b (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Build: 3 (bump this up by 1 to force an appveyor run)

os: Visual Studio 2015
# avoid 2 builds when pushing on PRs
skip_branch_with_pr: true
# avoid build on new GIT tag
skip_tags: true
matrix:
  # stop build on first failure
  fast_finish: true
environment:
  global:
    # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
    # /E:ON and /V:ON options are not enabled in the batch script intepreter
    # See: http://stackoverflow.com/a/13751649/163740
    WITH_COMPILER: "cmd /E:ON /V:ON /C .\\.ci\\appveyor\\run_with_compiler.cmd"
    PYTHONWARNINGS: always
    PYTHONUNBUFFERED: 1
    PSUTIL_DEBUG: 1
  matrix:
    # 32 bits

    - PYTHON: "C:\\Python27"
      PYTHON_VERSION: "2.7.x"
      PYTHON_ARCH: "32"

    - PYTHON: "C:\\Python36"
      PYTHON_VERSION: "3.6.x"
      PYTHON_ARCH: "32"

    - PYTHON: "C:\\Python37"
      PYTHON_VERSION: "3.7.x"
      PYTHON_ARCH: "32"

    - PYTHON: "C:\\Python38"
      PYTHON_VERSION: "3.8.x"
      PYTHON_ARCH: "32"

    - PYTHON: "C:\\Python39"
      PYTHON_VERSION: "3.9.x"
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      PYTHON_ARCH: "32"

    - PYTHON: "C:\\Python310"
      PYTHON_VERSION: "3.10.x"
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      PYTHON_ARCH: "32"

    # 64 bits

    - PYTHON: "C:\\Python27-x64"
      PYTHON_VERSION: "2.7.x"
      PYTHON_ARCH: "64"

    - PYTHON: "C:\\Python36-x64"
      PYTHON_VERSION: "3.6.x"
      PYTHON_ARCH: "64"

    - PYTHON: "C:\\Python37-x64"
      PYTHON_VERSION: "3.7.x"
      PYTHON_ARCH: "64"

    - PYTHON: "C:\\Python38-x64"
      PYTHON_VERSION: "3.8.x"
      PYTHON_ARCH: "64"

    - PYTHON: "C:\\Python39-x64"
      PYTHON_VERSION: "3.9.x"
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      PYTHON_ARCH: "64"

    - PYTHON: "C:\\Python310-x64"
      PYTHON_VERSION: "3.10.x"
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
      PYTHON_ARCH: "64"

init:
  - "ECHO %PYTHON% %PYTHON_VERSION% %PYTHON_ARCH%"

install:
  - "powershell .ci\\appveyor\\install.ps1"
  # - ps: (new-object net.webclient).DownloadFile('https://raw.github.com/pypa/pip/master/contrib/get-pip.py', 'C:/get-pip.py')
  - "%WITH_COMPILER% %PYTHON%/python.exe -m pip --version"
  - "%WITH_COMPILER% %PYTHON%/python.exe -m pip install --upgrade --user setuptools pip"
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/winmake.py setup-dev-env"
  - "%WITH_COMPILER% %PYTHON%/python.exe -m pip freeze"
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/winmake.py install"

build: off

test_script:
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/winmake.py test"
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/winmake.py test-memleaks"

after_test:
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/winmake.py wheel"
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/print_hashes.py dist"
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/print_access_denied.py"
  - "%WITH_COMPILER% %PYTHON%/python.exe scripts/internal/print_api_speed.py"

artifacts:
  - path: dist\*

cache:
  - '%LOCALAPPDATA%\pip\Cache'

# on_success:
#   - might want to upload the content of dist/*.whl to a public wheelhouse

skip_commits:
  message: skip-appveyor

# run build only if one of the following files is modified on commit
only_commits:
  files:
    - .ci/appveyor/*
    - appveyor.yml
    - psutil/__init__.py
    - psutil/_common.py
    - psutil/_compat.py
    - psutil/_psutil_common.*
    - psutil/_psutil_windows.*
    - psutil/_pswindows.py
    - psutil/arch/windows/*
    - psutil/tests/*
    - scripts/*
    - setup.py