From 1b7bbb61dfacd7204f767528973950f5b0104a5a Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 28 Oct 2020 18:17:03 +0100 Subject: [PATCH 01/26] Satisfy testing on macOS This skips some tests currently not working on macOS. --- DEVELOP.rst | 11 ++++++++++- base.cfg | 8 ++++++++ versions.cfg | 3 +++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/DEVELOP.rst b/DEVELOP.rst index cdd64551..bb2aa992 100644 --- a/DEVELOP.rst +++ b/DEVELOP.rst @@ -51,7 +51,16 @@ To run against a single interpreter, you can also invoke:: are listening on the default CrateDB transport port to avoid side effects with the test layer. -Preparing a release +In order to run the tests on other operating systems than Linux, invoke:: + + ./bin/test-quick + +This will skip some tests currently not working on macOS. It can also be used +to speed up the tests, because the tests for testing the test layer will also +be skipped. + + +Preparing a Release =================== To create a new release, you must: diff --git a/base.cfg b/base.cfg index e470e47b..24463d3a 100644 --- a/base.cfg +++ b/base.cfg @@ -4,6 +4,7 @@ extends = versions.cfg versions = versions show-picked-versions = true parts = test + test-quick crate scripts coverage @@ -40,6 +41,13 @@ recipe = zc.recipe.testrunner defaults = ['--auto-color'] eggs = crate [test,sqlalchemy] +[test-quick] +relative-paths=true +working-directory = ${buildout:directory} +recipe = zc.recipe.testrunner +defaults = ['--auto-color', '--ignore_dir', 'testing', '--test', '!test_no_retry_on_read_timeout|test_client_threaded|test_client_keepalive|test_username|test_default_schema'] +eggs = crate [test,sqlalchemy] + [linter] recipe = zc.recipe.egg:script eggs = flake8 diff --git a/versions.cfg b/versions.cfg index 2a91d62b..f6cb0784 100644 --- a/versions.cfg +++ b/versions.cfg @@ -20,6 +20,9 @@ py = 1.10.0 tox = 3.23.0 twine = 3.4.0 pkginfo = 1.7.0 +virtualenv = 15.1.0 +wheel = 0.24.0 +zc.buildout = 2.11.2 zc.customdoctests = 1.0.1 zc.recipe.egg = 2.0.7 zc.recipe.testrunner = 2.2 From f2b5c7b9a13a935d8b0c288e6de26bc5ac544b09 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 12:18:41 +0100 Subject: [PATCH 02/26] CI: Adjust CrateDB version in versions.cfg only on Linux --- devtools/setup_ci.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/devtools/setup_ci.sh b/devtools/setup_ci.sh index 6da60665..4b72c01e 100755 --- a/devtools/setup_ci.sh +++ b/devtools/setup_ci.sh @@ -53,12 +53,14 @@ function main() { # Replace SQLAlchemy version. sed -ir "s/SQLAlchemy.*/SQLAlchemy = ${sqlalchemy_version}/g" versions.cfg - # Replace CrateDB version. - if [ ${cratedb_version} = "nightly" ]; then - sed -ir "s/releases/releases\/nightly/g" base.cfg - sed -ir "s/crate_server.*/crate_server = latest/g" versions.cfg - else - sed -ir "s/crate_server.*/crate_server = ${cratedb_version}/g" versions.cfg + # Adjust CrateDB version, only on Linux. + if [ ${{ matrix.os }} = "ubuntu-latest" ]; then + if [ ${cratedb_version} = "nightly" ]; then + sed -ir "s/releases/releases\/nightly/g" base.cfg + sed -ir "s/crate_server.*/crate_server = latest/g" versions.cfg + else + sed -ir "s/crate_server.*/crate_server = ${cratedb_version}/g" versions.cfg + fi fi buildout -n -c base.cfg From edeb599250e7f2c62f0e1b063808cae5adb96920 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 12:31:14 +0100 Subject: [PATCH 03/26] Attempt to mitigate "Failed to start Crate instance in time" --- src/crate/testing/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 3bd3fc99..7d6e69bb 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -348,7 +348,7 @@ def _wait_for(self, validator): self.stop() raise e - if wait_time > 30: + if wait_time > 45: for line in line_buf.lines: log.error(line) self.stop() From 18b332feea3de906c1066d5190afeee6e97dc967 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 12:39:16 +0100 Subject: [PATCH 04/26] CI: Enable testing on Windows --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 621d6850..730330e3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,7 +16,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-latest, macos-latest] + os: [ubuntu-latest, macos-latest, windows-2019] python-version: ['3.7', '3.8', '3.9', '3.10'] cratedb-version: ['4.8.0'] sqla-version: ['1.3.24'] From a9920f0199dcce3f4ecb66bd72913979944bc643 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 12:47:09 +0100 Subject: [PATCH 05/26] CI: Use "bash" when running on Windows --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 730330e3..e420c3f1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,10 +36,12 @@ jobs: echo "/usr/local/opt/gnu-getopt/bin" >> $GITHUB_PATH - name: Install dependencies + shell: bash run: | ./devtools/setup_ci.sh --cratedb-version=${{ matrix.cratedb-version }} --sqlalchemy-version=${{ matrix.sqla-version }} - name: Invoke tests + shell: bash run: | bin/flake8 bin/coverage run bin/test -vv1 From ea3fee212aba45024ba29a1fa302290520534299 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 16:52:55 +0100 Subject: [PATCH 06/26] CI: Disable firewall on Windows before running tests --- .github/workflows/tests.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e420c3f1..8e179f3d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,6 +40,13 @@ jobs: run: | ./devtools/setup_ci.sh --cratedb-version=${{ matrix.cratedb-version }} --sqlalchemy-version=${{ matrix.sqla-version }} + - name: Fix Windows environment + if: matrix.os == 'windows-2019' + shell: bash + run: | + # Disable firewall. + netsh advfirewall set allprofiles state off + - name: Invoke tests shell: bash run: | From 769c627b7f1f9f723f0d1140d0b3a85683965c38 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 18:45:26 +0100 Subject: [PATCH 07/26] CI: Attempt to mitigate CrateDB bootstrap errors on Windows --- src/crate/testing/layer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 7d6e69bb..41ac1566 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -225,6 +225,8 @@ def __init__(self, self.verbose = verbose self.env = env or {} self.env.setdefault('CRATE_USE_IPV4', 'true') + if sys.platform == 'win32': + self.env.setdefault('_JAVA_OPTIONS', '-Djava.net.preferIPv4Stack=true') self.env.setdefault('JAVA_HOME', os.environ.get('JAVA_HOME', '')) self._stdout_consumers = [] self.conn_pool = urllib3.PoolManager(num_pools=1) From 9cba45647238a12b6b452569017781102a468d93 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 21:15:24 +0100 Subject: [PATCH 08/26] CI: Another attempt to mitigate "Unrecognized Windows Sockets error: 10106: socket" --- .github/workflows/tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8e179f3d..c0fe72ca 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,6 +47,9 @@ jobs: # Disable firewall. netsh advfirewall set allprofiles state off + # Reset IP stack. + netsh winsock reset + - name: Invoke tests shell: bash run: | From f589521c65f55e6203f8cc839a3e52285d6b8522 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 21:34:43 +0100 Subject: [PATCH 09/26] CI: Another attempt to mitigate "Unrecognized Windows Sockets error: 10106: socket" --- src/crate/testing/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 41ac1566..9c709736 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -226,7 +226,7 @@ def __init__(self, self.env = env or {} self.env.setdefault('CRATE_USE_IPV4', 'true') if sys.platform == 'win32': - self.env.setdefault('_JAVA_OPTIONS', '-Djava.net.preferIPv4Stack=true') + self.env.setdefault('_JAVA_OPTIONS', '-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true') self.env.setdefault('JAVA_HOME', os.environ.get('JAVA_HOME', '')) self._stdout_consumers = [] self.conn_pool = urllib3.PoolManager(num_pools=1) From 3e788dae4d0df2f0f2d4236f2c1a577e219607e1 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Tue, 3 Nov 2020 23:56:38 +0100 Subject: [PATCH 10/26] CI: Disable IPv6 on Windows --- .github/workflows/tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c0fe72ca..72619637 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -50,6 +50,11 @@ jobs: # Reset IP stack. netsh winsock reset + # Disable IPv6. + netsh interface teredo set state disabled + netsh interface ipv6 6to4 set state state=disabled undoonstop=disabled + netsh interface ipv6 isatap set state state=disabled + - name: Invoke tests shell: bash run: | From 3a1c22f17dd109e1dee3fde7899426a1e6e21c22 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 08:42:41 +0100 Subject: [PATCH 11/26] CI: Attempt to fix Windows by setting SystemRoot env variable --- src/crate/testing/layer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 9c709736..798da93f 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -227,6 +227,7 @@ def __init__(self, self.env.setdefault('CRATE_USE_IPV4', 'true') if sys.platform == 'win32': self.env.setdefault('_JAVA_OPTIONS', '-Djava.awt.headless=true -Djava.net.preferIPv4Stack=true') + self.env.setdefault('SystemRoot', 'C:\\Windows') self.env.setdefault('JAVA_HOME', os.environ.get('JAVA_HOME', '')) self._stdout_consumers = [] self.conn_pool = urllib3.PoolManager(num_pools=1) From a2c86cff8920e50a609c3b106c635747e6ce6b23 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 09:39:46 +0100 Subject: [PATCH 12/26] CI: Fix Windows path handling "COPY X FROM Y" must use paths in URI format on Windows, see https://docs.microsoft.com/en-us/archive/blogs/ie/file-uris-in-windows --- src/crate/testing/tests.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/crate/testing/tests.py b/src/crate/testing/tests.py index 9c9c3017..283ca93b 100644 --- a/src/crate/testing/tests.py +++ b/src/crate/testing/tests.py @@ -21,6 +21,8 @@ # software solely pursuant to the terms of the relevant commercial agreement. import os +import pathlib +import sys import unittest import doctest import tempfile @@ -28,11 +30,14 @@ def docs_path(*parts): - return os.path.abspath( + path = os.path.abspath( os.path.join( os.path.dirname(os.path.dirname(__file__)), *parts ) ) + if sys.platform == 'win32': + path = pathlib.PureWindowsPath(path).as_uri() + return path def project_root(*parts): From c87dc71715bb5451c15f9d00d3f85cd1c4e1d968 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 15:06:12 +0100 Subject: [PATCH 13/26] CI: Improve logging to find out about any errors when starting CrateDB --- src/crate/testing/layer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 798da93f..33457b20 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -297,6 +297,7 @@ def _clean(self): def start(self): self._clean() + log.info("Starting process '{}'".format(self.start_cmd)) self.process = subprocess.Popen(self.start_cmd, env=self.env, stdout=subprocess.PIPE) From 39fbad758de3b888bd3a607e9a10c5b298c9d93f Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 15:41:02 +0100 Subject: [PATCH 14/26] CI: Improve logging to find out about any errors when starting CrateDB --- src/crate/testing/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 33457b20..221dd5c2 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -297,7 +297,7 @@ def _clean(self): def start(self): self._clean() - log.info("Starting process '{}'".format(self.start_cmd)) + sys.stderr.write("Starting process '{}'\n".format(self.start_cmd)) self.process = subprocess.Popen(self.start_cmd, env=self.env, stdout=subprocess.PIPE) From 87175364c1a5cf0c7c12ab1a11e7841ed6d679cc Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 15:54:09 +0100 Subject: [PATCH 15/26] CI: Fix path computation for Windows again --- src/crate/client/tests.py | 6 ++++++ src/crate/testing/tests.py | 4 ---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/crate/client/tests.py b/src/crate/client/tests.py index 7b19a7fb..1ad3f577 100644 --- a/src/crate/client/tests.py +++ b/src/crate/client/tests.py @@ -24,6 +24,8 @@ import json import os import socket +import pathlib +import sys import unittest import doctest from pprint import pprint @@ -166,7 +168,11 @@ def setUpWithCrateLayer(test): cursor.execute(stmt) assert cursor.fetchall()[0][0] == 1 + # Compute path to file for data loading. data_path = docs_path('testing/testdata/data/test_a.json') + if sys.platform == 'win32': + data_path = pathlib.PureWindowsPath(data_path).as_uri() + # load testing data into crate cursor.execute("copy locations from ?", (data_path,)) # refresh location table so imported data is visible immediately diff --git a/src/crate/testing/tests.py b/src/crate/testing/tests.py index 283ca93b..1bc39b8a 100644 --- a/src/crate/testing/tests.py +++ b/src/crate/testing/tests.py @@ -21,8 +21,6 @@ # software solely pursuant to the terms of the relevant commercial agreement. import os -import pathlib -import sys import unittest import doctest import tempfile @@ -35,8 +33,6 @@ def docs_path(*parts): os.path.dirname(os.path.dirname(__file__)), *parts ) ) - if sys.platform == 'win32': - path = pathlib.PureWindowsPath(path).as_uri() return path From 0d0c4c415e75717521483d7924b946c80d69dbce Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 16:01:37 +0100 Subject: [PATCH 16/26] CI: Give test layer some more time to tear down on Windows --- src/crate/testing/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 221dd5c2..cc5c833c 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -327,7 +327,7 @@ def start(self): def stop(self): if self.process: self.process.terminate() - self.process.communicate(timeout=10) + self.process.communicate(timeout=20) self.process.stdout.close() self.process = None self.conn_pool.clear() From 100aa9f1714c946d3b5f76a38affa73171bd3517 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 16:01:46 +0100 Subject: [PATCH 17/26] CI: Add comment --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 72619637..3e0d2d90 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -51,6 +51,7 @@ jobs: netsh winsock reset # Disable IPv6. + # https://superuser.com/questions/1545288/disable-ipv6-connectivity-on-windows-without-restarting-the-computer netsh interface teredo set state disabled netsh interface ipv6 6to4 set state state=disabled undoonstop=disabled netsh interface ipv6 isatap set state state=disabled From 18e60c3a1afb5afe014dc2a9b8b854110b91a748 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 16:17:32 +0100 Subject: [PATCH 18/26] CI: Give test layer some more time to tear down on Windows --- src/crate/testing/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index cc5c833c..b3a8cb70 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -327,7 +327,7 @@ def start(self): def stop(self): if self.process: self.process.terminate() - self.process.communicate(timeout=20) + self.process.communicate(timeout=45) self.process.stdout.close() self.process = None self.conn_pool.clear() From 2a73fdd3b465f5376ff7143e33deff1091fef608 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 16:39:12 +0100 Subject: [PATCH 19/26] CI: Ignore test layer timeout on tear down on Windows --- src/crate/testing/layer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index b3a8cb70..1f26d1a4 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -327,7 +327,11 @@ def start(self): def stop(self): if self.process: self.process.terminate() - self.process.communicate(timeout=45) + try: + self.process.communicate(timeout=10) + except subprocess.TimeoutExpired: + # On GHA/Windows, it always runs into a timeout, even after 45 seconds. + pass self.process.stdout.close() self.process = None self.conn_pool.clear() From 0e5533fa57b12ba74f8ed9a1d5de4c0730b3ecba Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 19:05:45 +0100 Subject: [PATCH 20/26] CI: Improve layer shutdown behaviour --- src/crate/testing/layer.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 1f26d1a4..b1eb813d 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -326,12 +326,17 @@ def start(self): def stop(self): if self.process: - self.process.terminate() try: self.process.communicate(timeout=10) except subprocess.TimeoutExpired: # On GHA/Windows, it always runs into a timeout, even after 45 seconds. - pass + # + # The child process is not killed if the timeout expires, so in order + # to cleanup properly a well-behaved application should kill the child + # process and finish communication. + # https://docs.python.org/3/library/subprocess.html#subprocess.Popen.communicate + self.process.kill() + self.process.communicate() self.process.stdout.close() self.process = None self.conn_pool.clear() From 04ebe120d47511dd620753900bb1b00921f90c51 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 21:32:42 +0100 Subject: [PATCH 21/26] CI: Adjust GHA/Windows --- src/crate/testing/layer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index b1eb813d..6bbdf112 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -326,6 +326,7 @@ def start(self): def stop(self): if self.process: + self.process.terminate() try: self.process.communicate(timeout=10) except subprocess.TimeoutExpired: From cb54ce8ba0e54f1cb4915c111a66e73ebac1cafa Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Thu, 5 Nov 2020 22:22:40 +0100 Subject: [PATCH 22/26] CI: GHA/Windows again --- src/crate/testing/layer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crate/testing/layer.py b/src/crate/testing/layer.py index 6bbdf112..4b0d9137 100644 --- a/src/crate/testing/layer.py +++ b/src/crate/testing/layer.py @@ -337,7 +337,7 @@ def stop(self): # process and finish communication. # https://docs.python.org/3/library/subprocess.html#subprocess.Popen.communicate self.process.kill() - self.process.communicate() + # self.process.communicate() self.process.stdout.close() self.process = None self.conn_pool.clear() From f5abad9e65ececc845101a249f3ad4e1ec3c454d Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 25 May 2022 22:56:27 +0200 Subject: [PATCH 23/26] fixup! CI: Adjust CrateDB version in versions.cfg only on Linux --- devtools/setup_ci.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/setup_ci.sh b/devtools/setup_ci.sh index 4b72c01e..f564c914 100755 --- a/devtools/setup_ci.sh +++ b/devtools/setup_ci.sh @@ -54,7 +54,7 @@ function main() { sed -ir "s/SQLAlchemy.*/SQLAlchemy = ${sqlalchemy_version}/g" versions.cfg # Adjust CrateDB version, only on Linux. - if [ ${{ matrix.os }} = "ubuntu-latest" ]; then + if [ $(uname -s) = "Linux" ]; then if [ ${cratedb_version} = "nightly" ]; then sed -ir "s/releases/releases\/nightly/g" base.cfg sed -ir "s/crate_server.*/crate_server = latest/g" versions.cfg From 7f8ca8bab0311677703417e43154048fd83617f4 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 25 May 2022 23:00:56 +0200 Subject: [PATCH 24/26] Sandbox: Update zc.buildout to 2.13.7 --- versions.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions.cfg b/versions.cfg index f6cb0784..cec6cb50 100644 --- a/versions.cfg +++ b/versions.cfg @@ -22,7 +22,7 @@ twine = 3.4.0 pkginfo = 1.7.0 virtualenv = 15.1.0 wheel = 0.24.0 -zc.buildout = 2.11.2 +zc.buildout = 2.13.7 zc.customdoctests = 1.0.1 zc.recipe.egg = 2.0.7 zc.recipe.testrunner = 2.2 From 7d45ba0d5e7ab8aae33aedcfc02b5a4ff507dac3 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 25 May 2022 23:03:39 +0200 Subject: [PATCH 25/26] CI: Don't fail fast when invoking the test matrix In this manner, the outcome can be better inspected regarding deviances and flaky behavior; specifically when so many things on the CI environment setup is being changed. It can be reverted again later. --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3e0d2d90..a1f9a75d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: python-version: ['3.7', '3.8', '3.9', '3.10'] cratedb-version: ['4.8.0'] sqla-version: ['1.3.24'] - fail-fast: true + fail-fast: false steps: - uses: actions/checkout@v3 From 73b94ad498471c520618a1715afdd2f35f0a4818 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Wed, 25 May 2022 23:16:22 +0200 Subject: [PATCH 26/26] CI: Fix finding `bin/test` on Windows https://github.com/buildout/buildout/blob/3da22a7/src/zc/buildout/testing.txt#L194-L199 --- .github/workflows/tests.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a1f9a75d..60e4e377 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -60,7 +60,13 @@ jobs: shell: bash run: | bin/flake8 - bin/coverage run bin/test -vv1 + + test_program=bin/test + if [ ${{ matrix.os }} = "windows-2019" ]; then + test_program=bin/test-script.py + fi + bin/coverage run $test_program -vv1 + bin/coverage xml # https://github.com/codecov/codecov-action