mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
* POC replace travis by Github Actions * add libldap2-dev * add libsasl2-dev libssl-dev * Delete .travis.yml * Add specific configuration for PostgreSQL * Retrieve PostgreSQL or MySQL port from env var * Print affected port for the docker service * Add Database type and dburl * Fix dbtype * Use environment variable to define the port in use for tests. * Configured password for postgres connection. * Added redis service. * Enabled OpenLDAP service. * Use a container for OpenLDAP too. * Removed wrong option. * Fixed volume syntax. * Try using the option directly. * Try using an absolute path. * Fixed wrong syntax. * Try different format for env variable. * Try a different way to load data. * Added missing method call. * Fix envar * Try to wait a bit before starting tests. * Display openldap service logs. * Fixed ldif scripts path. * Try to use a custom docker image. * Try to provide credentials. * Try with github token. * use main reference * Changed LDAP Admin password. * Added debug. * Added more debug * Removed debug. * dd test for MySQL * Fix name * Test is independant * Link build * add envar DB for MySQL * remove depends * fix fast failed * fix mysql user * Use 127.0.0.1 to force for IPv4 * For parameters for MySQL * Database name test_modoboa * change mysql user to launch test * Move to the last mysql version lose connection on 5.7 * TEst some timout parameters * remove bad parameters * Add CONN_MAX_AGE parameters * Add docker logs * Try to reset db connections before we spawn processes. * POC replace travis by Github Actions * add libldap2-dev * add libsasl2-dev libssl-dev * Delete .travis.yml * Add specific configuration for PostgreSQL * Retrieve PostgreSQL or MySQL port from env var * Print affected port for the docker service * Add Database type and dburl * Fix dbtype * Use environment variable to define the port in use for tests. * Configured password for postgres connection. * Added redis service. * Enabled OpenLDAP service. * Use a container for OpenLDAP too. * Removed wrong option. * Fixed volume syntax. * Try using the option directly. * Try using an absolute path. * Fixed wrong syntax. * Try different format for env variable. * Try a different way to load data. * Added missing method call. * Fix envar * Try to wait a bit before starting tests. * Display openldap service logs. * Fixed ldif scripts path. * Try to use a custom docker image. * Try to provide credentials. * Try with github token. * use main reference * Changed LDAP Admin password. * Added debug. * Added more debug * Removed debug. * dd test for MySQL * Fix name * Test is independant * Link build * add envar DB for MySQL * remove depends * fix fast failed * fix mysql user * Use 127.0.0.1 to force for IPv4 * For parameters for MySQL * Database name test_modoboa * change mysql user to launch test * Move to the last mysql version lose connection on 5.7 * TEst some timout parameters * remove bad parameters * Add CONN_MAX_AGE parameters * Add docker logs * Try to reset db connections before we spawn processes. * Add relase on pypi (test server first) * Fix setuptools scm to fix upload on Pypi test * Retrieve all repos when publish on pypi * if file exists, skip it * Deploy only on master * Added python 3.5 in matrix. * Removed comments. * Add translation and codecov * Missing argument for upload in production * fix bad indentation * move codecov * Codecov only in one build * fix command * Try to run codecov after PG tests. * Fixed expressions syntax. * Fixed path issue. * Fixed path issue. * Try workflow_run statement. * Removed useless triggers. * Test trigger on one workflow * Another test * Exclude master and main branch * Regroup all steps in one workflow. * Fixed typo * Fixed bad syntax * Added missing requirement. * Push on Pypi Test only on master branch Co-authored-by: Antoine Nguyen <tonio@ngyn.org>
92 lines
3.1 KiB
Python
92 lines
3.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
"""
|
|
A setuptools based setup module.
|
|
|
|
See:
|
|
https://packaging.python.org/en/latest/distributing.html
|
|
"""
|
|
|
|
from os import path
|
|
|
|
try:
|
|
from pip.req import parse_requirements
|
|
except ImportError:
|
|
# pip >= 10
|
|
from pip._internal.req import parse_requirements
|
|
|
|
from setuptools import find_packages, setup
|
|
|
|
|
|
def get_requirements(requirements_file):
|
|
"""Use pip to parse requirements file."""
|
|
requirements = []
|
|
if path.isfile(requirements_file):
|
|
for req in parse_requirements(requirements_file, session="hack"):
|
|
try:
|
|
if req.markers:
|
|
requirements.append("%s;%s" % (req.req, req.markers))
|
|
else:
|
|
requirements.append("%s" % req.req)
|
|
except AttributeError:
|
|
# pip >= 20.0.2
|
|
requirements.append(req.requirement)
|
|
return requirements
|
|
|
|
|
|
if __name__ == "__main__":
|
|
HERE = path.abspath(path.dirname(__file__))
|
|
INSTALL_REQUIRES = get_requirements(path.join(HERE, "requirements.txt"))
|
|
MYSQL_REQUIRES = get_requirements(path.join(HERE, "mysql-requirements.txt"))
|
|
POSTGRESQL_REQUIRES = get_requirements(
|
|
path.join(HERE, "postgresql-requirements.txt"))
|
|
LDAP_REQUIRES = get_requirements(path.join(HERE, "ldap-requirements.txt"))
|
|
|
|
with open(path.join(HERE, "README.rst")) as readme:
|
|
LONG_DESCRIPTION = readme.read()
|
|
|
|
def local_scheme(version):
|
|
"""Skip the local version (eg. +xyz of 0.6.1.dev4+gdf99fe2)
|
|
to be able to upload to Test PyPI"""
|
|
return ""
|
|
|
|
setup(
|
|
name="modoboa",
|
|
description="Mail hosting made simple",
|
|
long_description=LONG_DESCRIPTION,
|
|
license="ISC",
|
|
url="http://modoboa.org/",
|
|
author="Antoine Nguyen",
|
|
author_email="tonio@ngyn.org",
|
|
classifiers=[
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Environment :: Web Environment",
|
|
"Framework :: Django :: 2.2",
|
|
"Intended Audience :: System Administrators",
|
|
"License :: OSI Approved :: ISC License (ISCL)",
|
|
"Operating System :: OS Independent",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.5",
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Topic :: Communications :: Email",
|
|
"Topic :: Internet :: WWW/HTTP",
|
|
],
|
|
keywords="email",
|
|
packages=find_packages(exclude=["doc", "test_data", "test_project"]),
|
|
include_package_data=True,
|
|
zip_safe=False,
|
|
scripts=["bin/modoboa-admin.py"],
|
|
install_requires=INSTALL_REQUIRES,
|
|
use_scm_version={"local_scheme": local_scheme},
|
|
python_requires=">=3.4",
|
|
setup_requires=["setuptools_scm"],
|
|
extras_require={
|
|
"ldap": LDAP_REQUIRES,
|
|
"mysql": MYSQL_REQUIRES,
|
|
"postgresql": POSTGRESQL_REQUIRES,
|
|
"argon2": ["argon2-cffi >= 16.1.0"],
|
|
},
|
|
)
|