CI: Remove Travis CI, and tox (#705)

This commit is contained in:
Andreas Motl 2022-10-20 02:18:03 +02:00 committed by GitHub
parent 7c993fb7f6
commit eafa7498b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 4 additions and 217 deletions

View File

@ -1,67 +0,0 @@
language: python
dist: focal
addons:
apt:
packages:
- libdbus-1-dev
matrix:
include:
- python: "3.6"
env: TOXENV=py36
- python: "3.7"
env: TOXENV=py37
- python: "3.8"
env: TOXENV=py38
- python: "3.9"
env: TOXENV=py39
- python: "3.10"
env: TOXENV=py310
- python: "3.11-dev"
env: TOXENV=py311
# PyPy Environments
- python: "pypy3.6-7.3.3"
env: TOXENV=pypy36
- python: "pypy3.9-7.3.9"
env: TOXENV=pypy39
# An extra environment where additional packages are not installed
- python: "3.9"
env:
- TOXENV=bare
install:
- pip install babel
# Use up-to-date versions of tox, pip, virtualenv, and wheel.
- pip install --upgrade tox pip virtualenv wheel
# cryptography 3.3 is the last one not needing a Rust toolchain. Let's use it for PyPy.
- if [[ $TOXENV == 'pypy'* ]]; then pip install "cryptography<3.4"; fi
# Install project dependencies.
- pip install codecov
- pip install -r dev-requirements.txt
- pip install -r requirements.txt
# bare installs do not include extra package dependencies
- if [[ $TOXENV != 'bare' ]]; then pip install -r all-plugin-requirements.txt; fi
# pypy and bare installs do not include dbus-python
- if [[ $TOXENV != 'bare' ]] && [[ $TRAVIS_PYTHON_VERSION != 'pypy'* ]]; then travis_retry pip install dbus-python; fi
# Fix/workaround: Python 3.7 importlib-metadata becomes incompatible with flake8,
# unless we use a version that still supports EntryPoints.get().
# `tox.ini` has been updated to not call flake8 on Python 3.7.
- if [[ $TOXENV == 'py37' || $TOXENV == 'pypy37' ]]; then pip uninstall --yes flake8; fi
# run tests
script:
- tox
after_success:
- tox -e coverage-report
- codecov
notifications:
email: false

View File

@ -22,7 +22,7 @@ System Administrators and DevOps who wish to send a notification now no longer n
[![Follow](https://img.shields.io/twitter/follow/l2gnux)](https://twitter.com/l2gnux/)<br/> [![Follow](https://img.shields.io/twitter/follow/l2gnux)](https://twitter.com/l2gnux/)<br/>
[![Discord](https://img.shields.io/discord/558793703356104724.svg?colorB=7289DA&label=Discord&logo=Discord&logoColor=7289DA&style=flat-square)](https://discord.gg/MMPeN2D) [![Discord](https://img.shields.io/discord/558793703356104724.svg?colorB=7289DA&label=Discord&logo=Discord&logoColor=7289DA&style=flat-square)](https://discord.gg/MMPeN2D)
[![Python](https://img.shields.io/pypi/pyversions/apprise.svg?style=flat-square)](https://pypi.org/project/apprise/) [![Python](https://img.shields.io/pypi/pyversions/apprise.svg?style=flat-square)](https://pypi.org/project/apprise/)
[![Build Status](https://travis-ci.com/caronc/apprise.svg?branch=master)](https://app.travis-ci.com/github/caronc/apprise) [![Build Status](https://github.com/caronc/apprise/actions/workflows/tests.yml/badge.svg)](https://github.com/caronc/apprise/actions/workflows/tests.yml)
[![CodeCov Status](https://codecov.io/github/caronc/apprise/branch/master/graph/badge.svg)](https://codecov.io/github/caronc/apprise) [![CodeCov Status](https://codecov.io/github/caronc/apprise/branch/master/graph/badge.svg)](https://codecov.io/github/caronc/apprise)
[![PyPi](https://img.shields.io/pypi/dm/apprise.svg?style=flat-square)](https://pypi.org/project/apprise/) [![PyPi](https://img.shields.io/pypi/dm/apprise.svg?style=flat-square)](https://pypi.org/project/apprise/)

View File

@ -30,7 +30,6 @@
# API is documented here: # API is documented here:
# - https://www.bulksms.com/developer/json/v1/#tag/Message # - https://www.bulksms.com/developer/json/v1/#tag/Message
import re import re
import six
import requests import requests
import json import json
from itertools import chain from itertools import chain
@ -192,7 +191,7 @@ class NotifyBulkSMS(NotifyBase):
# Setup our route # Setup our route
self.route = self.template_args['route']['default'] \ self.route = self.template_args['route']['default'] \
if not isinstance(route, six.string_types) else route.upper() if not isinstance(route, str) else route.upper()
if self.route not in BULKSMS_ROUTING_GROUPS: if self.route not in BULKSMS_ROUTING_GROUPS:
msg = 'The route specified ({}) is invalid.'.format(route) msg = 'The route specified ({}) is invalid.'.format(route)
self.logger.warning(msg) self.logger.warning(msg)

View File

@ -4,5 +4,4 @@ pytest
pytest-cov pytest-cov
pytest-mock pytest-mock
pytest-xdist pytest-xdist
tox
babel babel

View File

@ -68,7 +68,7 @@ def setup_glib_environment():
importlib.reload(sys.modules['apprise.plugins.NotifyDBus']) importlib.reload(sys.modules['apprise.plugins.NotifyDBus'])
# We need to fake our dbus environment for testing purposes since # We need to fake our dbus environment for testing purposes since
# the gi library isn't available in Travis CI # the gi library isn't available on CI
gi = types.ModuleType(gi_name) gi = types.ModuleType(gi_name)
gi.repository = types.ModuleType(gi_name + '.repository') gi.repository = types.ModuleType(gi_name + '.repository')

View File

@ -58,7 +58,7 @@ def setup_glib_environment():
reload_plugin('NotifyGnome') reload_plugin('NotifyGnome')
# We need to fake our gnome environment for testing purposes since # We need to fake our gnome environment for testing purposes since
# the gi library isn't available in Travis CI # the gi library isn't available on CI
gi = types.ModuleType(gi_name) gi = types.ModuleType(gi_name)
gi.repository = types.ModuleType(gi_name + '.repository') gi.repository = types.ModuleType(gi_name + '.repository')
gi.module = types.ModuleType(gi_name + '.module') gi.module = types.ModuleType(gi_name + '.module')

144
tox.ini
View File

@ -1,144 +0,0 @@
[tox]
envlist = py36,py37,py38,py39,py310,py311.pypy36,pypy39,bare,coverage-report
[testenv]
# Prevent random setuptools/pip breakages like
# https://github.com/pypa/setuptools/issues/1042 from breaking our builds.
setenv =
VIRTUALENV_NO_DOWNLOAD=1
deps=
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:py36]
deps=
dbus-python
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:py37]
deps=
dbus-python
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
[testenv:py38]
deps=
dbus-python
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:py39]
deps=
dbus-python
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:py310]
deps=
dbus-python
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:py311]
deps=
dbus-python
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run --parallel -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:bare]
deps=
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:pypy36]
deps=
# cryptography 3.3 is the last one not needing a Rust toolchain.
cryptography<3.4
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:pypy37]
deps=
# cryptography 3.3 is the last one not needing a Rust toolchain.
cryptography<3.4
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
[testenv:pypy38]
deps=
# cryptography 3.3 is the last one not needing a Rust toolchain.
cryptography<3.4
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:pypy39]
deps=
# cryptography 3.3 is the last one not needing a Rust toolchain.
cryptography<3.4
-r{toxinidir}/requirements.txt
-r{toxinidir}/dev-requirements.txt
-r{toxinidir}/all-plugin-requirements.txt
commands =
python setup.py compile_catalog
coverage run -m pytest {posargs}
flake8 . --count --show-source --statistics
[testenv:coverage-report]
deps = coverage
skip_install = true
commands=
coverage combine
coverage xml
coverage report