Add GitLab CI/CD support (#2163)
* Use GitLab CI/CD * Force colored tests * Get rid of an error * Mark tests as slow * Disable codecov & coveralls * Python 3.5-3.8 * Add Python 3.4 * Support both OpenSSL 1.1.0 and 1.1.1+ * Test both OpenSSL 1.1.0 and 1.1.1+ * Fix OpenSSL 1.1.1 * Fix Python 3.4 build
This commit is contained in:
parent
155d8d4dfd
commit
01ff89315b
6 changed files with 67 additions and 8 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,6 +9,7 @@ __pycache__/
|
|||
.*
|
||||
!/.gitignore
|
||||
!/.travis.yml
|
||||
!/.gitlab-ci.yml
|
||||
|
||||
# Temporary files
|
||||
*.bak
|
||||
|
|
48
.gitlab-ci.yml
Normal file
48
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,48 @@
|
|||
stages:
|
||||
- test
|
||||
|
||||
.test_template: &test_template
|
||||
stage: test
|
||||
before_script:
|
||||
- pip install --upgrade pip wheel
|
||||
# Selenium and requests can't be installed without a requests hint on Python 3.4
|
||||
- pip install --upgrade requests>=2.22.0
|
||||
- pip install --upgrade codecov coveralls flake8 mock pytest==4.6.3 pytest-cov selenium
|
||||
- pip install --upgrade -r requirements.txt
|
||||
script:
|
||||
- pip list
|
||||
- openssl version -a
|
||||
- python -m pytest -x plugins/CryptMessage/Test --color=yes
|
||||
- python -m pytest -x plugins/Bigfile/Test --color=yes
|
||||
- python -m pytest -x plugins/AnnounceLocal/Test --color=yes
|
||||
- python -m pytest -x plugins/OptionalManager/Test --color=yes
|
||||
- python -m pytest src/Test --cov=src --cov-config src/Test/coverage.ini --color=yes
|
||||
- mv plugins/disabled-Multiuser plugins/Multiuser
|
||||
- python -m pytest -x plugins/Multiuser/Test --color=yes
|
||||
- mv plugins/disabled-Bootstrapper plugins/Bootstrapper
|
||||
- python -m pytest -x plugins/Bootstrapper/Test --color=yes
|
||||
- flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics --exclude=src/lib/pybitcointools/
|
||||
|
||||
test:py3.4:
|
||||
image: python:3.4.3
|
||||
<<: *test_template
|
||||
|
||||
test:py3.5:
|
||||
image: python:3.5.7
|
||||
<<: *test_template
|
||||
|
||||
test:py3.6:
|
||||
image: python:3.6.9
|
||||
<<: *test_template
|
||||
|
||||
test:py3.7-openssl1.1.0:
|
||||
image: python:3.7.0b5
|
||||
<<: *test_template
|
||||
|
||||
test:py3.7-openssl1.1.1:
|
||||
image: python:3.7.4
|
||||
<<: *test_template
|
||||
|
||||
test:py3.8:
|
||||
image: python:3.8.0b3
|
||||
<<: *test_template
|
|
@ -2,4 +2,5 @@
|
|||
python_files = Test*.py
|
||||
addopts = -rsxX -v --durations=6
|
||||
markers =
|
||||
slow: mark a tests as slow.
|
||||
webtest: mark a test as a webtest.
|
|
@ -26,9 +26,16 @@ def loadLib(lib_name):
|
|||
import bitcoin.core.key
|
||||
import bitcoin.wallet
|
||||
|
||||
try:
|
||||
# OpenSSL 1.1.0
|
||||
ssl_version = bitcoin.core.key._ssl.SSLeay()
|
||||
except AttributeError:
|
||||
# OpenSSL 1.1.1+
|
||||
ssl_version = bitcoin.core.key._ssl.OpenSSL_version_num()
|
||||
|
||||
logging.info(
|
||||
"OpenSSL loaded: %s, version: %.9X in %.3fs" %
|
||||
(bitcoin.core.key._ssl, bitcoin.core.key._ssl.SSLeay(), time.time() - s)
|
||||
(bitcoin.core.key._ssl, ssl_version, time.time() - s)
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -109,13 +109,14 @@ from Debug import Debug
|
|||
def cleanup():
|
||||
Db.dbCloseAll()
|
||||
for dir_path in [config.data_dir, config.data_dir + "-temp"]:
|
||||
for file_name in os.listdir(dir_path):
|
||||
ext = file_name.rsplit(".", 1)[-1]
|
||||
if ext not in ["csr", "pem", "srl", "db", "json", "tmp"]:
|
||||
continue
|
||||
file_path = dir_path + "/" + file_name
|
||||
if os.path.isfile(file_path):
|
||||
os.unlink(file_path)
|
||||
if os.path.isdir(dir_path):
|
||||
for file_name in os.listdir(dir_path):
|
||||
ext = file_name.rsplit(".", 1)[-1]
|
||||
if ext not in ["csr", "pem", "srl", "db", "json", "tmp"]:
|
||||
continue
|
||||
file_path = dir_path + "/" + file_name
|
||||
if os.path.isfile(file_path):
|
||||
os.unlink(file_path)
|
||||
|
||||
atexit.register(cleanup)
|
||||
|
||||
|
|
|
@ -2,4 +2,5 @@
|
|||
python_files = Test*.py
|
||||
addopts = -rsxX -v --durations=6
|
||||
markers =
|
||||
slow: mark a tests as slow.
|
||||
webtest: mark a test as a webtest.
|
Loading…
Reference in a new issue