summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>2021-05-25 12:59:19 +0100
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>2021-05-26 17:26:00 +0100
commite7ce6761e11a37e511f84489224d4491b4c9f004 (patch)
tree2ffc98f83430a28f2ef8617e8a5aa85256a608c2
parentefae570a07be55d940bdb4c5d0ca84e54ff0cf0a (diff)
downloadpsycopg2-e7ce6761e11a37e511f84489224d4491b4c9f004.tar.gz
Use Appveyor to build Windows packages
The script was executed both by this repos' appveyor config (to run the tests) and by the psycopg2-wheels config (to build the packages). Now there are two different workflows to execute for tests and to build packages. The only way to swap them is to change the project config it seems, in <https://ci.appveyor.com/project/psycopg/psycopg2/settings>.
-rw-r--r--.appveyor/packages.yml88
-rw-r--r--.appveyor/tests.yml (renamed from .appveyor.yml)7
-rwxr-xr-xscripts/appveyor.py16
3 files changed, 93 insertions, 18 deletions
diff --git a/.appveyor/packages.yml b/.appveyor/packages.yml
new file mode 100644
index 0000000..628475c
--- /dev/null
+++ b/.appveyor/packages.yml
@@ -0,0 +1,88 @@
+version : 2.x.{build}
+
+clone_folder: C:\Project
+
+# We use the configuration to specify the package name
+configuration:
+ - psycopg2
+ - psycopg2-binary
+
+environment:
+ matrix:
+ # For Python versions available on Appveyor, see
+ # https://www.appveyor.com/docs/windows-images-software/#python
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019, PY_VER: "39", PY_ARCH: "32"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019, PY_VER: "39", PY_ARCH: "64"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "38", PY_ARCH: "32"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "38", PY_ARCH: "64"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "37", PY_ARCH: "32"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "37", PY_ARCH: "64"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "36", PY_ARCH: "32"}
+ - {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "36", PY_ARCH: "64"}
+
+ WORKFLOW: packages
+
+ OPENSSL_VERSION: "1_1_1h"
+ POSTGRES_VERSION: "13_0"
+
+ PSYCOPG2_TESTDB: psycopg2_test
+ PSYCOPG2_TESTDB_USER: postgres
+ PSYCOPG2_TESTDB_HOST: localhost
+
+ PGUSER: postgres
+ PGPASSWORD: Password12!
+ PGSSLMODE: require
+
+ # Add CWD to perl library path for PostgreSQL build on VS2019
+ PERL5LIB: .
+
+ # Select according to the service enabled
+ POSTGRES_DIR: C:\Program Files\PostgreSQL\9.6\
+
+ # 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 POSTGRES_DIR
+ - 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:
+
+# Repository gets cloned, Cache is restored
+
+install:
+ - "%PYEXE% scripts\\appveyor.py install"
+
+# PostgreSQL server starts now
+
+build: off
+
+build_script:
+ - "%PYEXE% scripts\\appveyor.py build_script"
+
+after_build:
+ - "%PYEXE% scripts\\appveyor.py after_build"
+
+before_test:
+ - "%PYEXE% scripts\\appveyor.py before_test"
+
+test_script:
+ - "%PYEXE% scripts\\appveyor.py test_script"
+
+artifacts:
+ - path: dist\psycopg2-*\*.whl
+ name: wheel
+ - path: dist\psycopg2-*\*.exe
+ name: exe
+
+
+# vim: set ts=4 sts=4 sw=4:
diff --git a/.appveyor.yml b/.appveyor/tests.yml
index d7edc0d..e1b7c52 100644
--- a/.appveyor.yml
+++ b/.appveyor/tests.yml
@@ -3,11 +3,6 @@ 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/windows-images-software/#python
@@ -20,6 +15,8 @@ environment:
- {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "36", PY_ARCH: "32"}
- {APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015, PY_VER: "36", PY_ARCH: "64"}
+ WORKFLOW: tests
+
OPENSSL_VERSION: "1_1_1h"
POSTGRES_VERSION: "13_0"
diff --git a/scripts/appveyor.py b/scripts/appveyor.py
index 428a6b4..39b3ebe 100755
--- a/scripts/appveyor.py
+++ b/scripts/appveyor.py
@@ -699,13 +699,8 @@ class Options:
@property
def is_wheel(self):
"""Are we building the wheel packages or just the extension?"""
- project_name = os.environ['APPVEYOR_PROJECT_NAME']
- if project_name == 'psycopg2':
- return False
- elif project_name == 'psycopg2-wheels':
- return True
- else:
- raise Exception(f"unexpected project name: {project_name}")
+ workflow = os.environ["WORKFLOW"]
+ return workflow == "packages"
@property
def py_dir(self):
@@ -801,12 +796,7 @@ class Options:
@property
def package_dir(self):
- """
- The directory containing the psycopg code checkout dir.
-
- Building psycopg it is clone_dir, building the wheels it is a submodule.
- """
- return self.clone_dir / 'psycopg2' if self.is_wheel else self.clone_dir
+ return self.clone_dir
@property
def dist_dir(self):