diff --git a/.github/workflows/modoboa.yml b/.github/workflows/modoboa.yml index 7422e1eec..393d77d34 100644 --- a/.github/workflows/modoboa.yml +++ b/.github/workflows/modoboa.yml @@ -174,6 +174,8 @@ jobs: yarn build cd .. - name: Build packages + env: + IS_RELEASE: yes run: | sudo apt-get install librrd-dev rrdtool libssl-dev python -m pip install --upgrade pip build diff --git a/modoboa/__init__.py b/modoboa/__init__.py index 1b52c3b1e..bd516d64a 100644 --- a/modoboa/__init__.py +++ b/modoboa/__init__.py @@ -1,7 +1,6 @@ """Modoboa - Mail hosting made simple.""" from pkg_resources import DistributionNotFound, get_distribution -from modoboa.core.commands import handle_command_line try: __version__ = get_distribution(__name__).version @@ -10,4 +9,5 @@ except DistributionNotFound: pass def modoboa_admin(): + from modoboa.core.commands import handle_command_line handle_command_line() diff --git a/modoboa/version.py b/modoboa/version.py new file mode 100644 index 000000000..5ab368c65 --- /dev/null +++ b/modoboa/version.py @@ -0,0 +1,16 @@ +import os + + +def local_scheme(version): + return "" + + +def get_version(): + from setuptools_scm import get_version as default_version + github_version = os.environ.get('GITHUB_REF_NAME', None) + is_release = os.environ.get('IS_RELEASE', None) + if is_release is not None and github_version is not None: + print(f"GITHUB_REF_NAME found, using version: {github_version}") + return github_version + return default_version(local_scheme=local_scheme) + diff --git a/pyproject.toml b/pyproject.toml index 86353e4d7..ba0c0b3f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["setuptools>=61.0"] +requires = ["setuptools>=61.0", "setuptools_scm[toml]>=6.2"] build-backend = "setuptools.build_meta" [project] @@ -89,3 +89,6 @@ modoboa-cli = "modoboa:modoboa_admin" homepage = "http://modoboa.org/" documentation = "https://modoboa.readthedocs.io/en/latest/" repository = "https://github.com/modoboa/modoboa" + +[tool.setuptools.dynamic] +version = {attr = "modoboa.version.get_version"}