From db2bb54d1da49dc0145f75a22bab0ad8537ae2ef Mon Sep 17 00:00:00 2001 From: sonny Date: Sun, 25 Jun 2023 11:13:50 +0200 Subject: [PATCH] Merge gitlab configuration & refactor dependencies --- .gitlab-ci.yml | 44 ++++++++++++++++-- Makefile | 32 +++++++++++--- gitlab/release.yml | 12 ----- gitlab/test.yml | 9 ---- pyproject.toml | 6 +-- requirements/ci.txt | 86 +++++++++++++++++++++++++++--------- requirements/development.txt | 41 ++++++++++++----- requirements/production.txt | 36 +++++++++++---- 8 files changed, 190 insertions(+), 76 deletions(-) delete mode 100644 gitlab/release.yml delete mode 100644 gitlab/test.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c505c28..c29df9f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,5 @@ stages: + - build - test - release @@ -12,6 +13,43 @@ cache: - .cache/pip - .cache/poetry -include: - - local: '/gitlab/test.yml' - - local: '/gitlab/release.yml' +development-build: + stage: build + image: python:3.11 + script: + - make install-development + - transip-listen --help + only: + - development + +production-build: + stage: build + image: python:3.11 + script: + - make install-prod + - transip-listen --help + only: + - main + +tests: + stage: test + coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' + image: python:3.11 + before_script: + - pip install -r requirements/ci.txt + script: + - coverage run --module unittest + - coverage report + +release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + rules: + - if: $CI_COMMIT_TAG + script: + - echo 'running release job' + release: + name: 'Release $CI_COMMIT_TAG' + description: './CHANGELOG.md' + tag_name: '$CI_COMMIT_TAG' + ref: '$CI_COMMIT_TAG' diff --git a/Makefile b/Makefile index e3684f8..51e1586 100644 --- a/Makefile +++ b/Makefile @@ -4,15 +4,33 @@ # Build dependencies build: pip-compile --output-file=requirements/base.txt pyproject.toml - pip-compile --extra=development --output-file=requirements/development.txt pyproject.toml - pip-compile --extra=development --extra=ci --output-file=requirements/ci.txt pyproject.toml - pip-compile --extra=sentry-enabled --output-file=requirements/production.txt pyproject.toml -# Install for development -install-dev: + # development + pip-compile \ + --extra=development \ + --output-file=requirements/development.txt \ + requirements/base.txt \ + pyproject.toml + + # ci + pip-compile \ + --extra=development \ + --extra=ci \ + --output-file=requirements/ci.txt \ + requirements/development.txt \ + pyproject.toml + + # production + pip-compile \ + --extra=sentry-enabled \ + --output-file=requirements/production.txt \ + requirements/base.txt \ + pyproject.toml + +install-development: python -m pip install -r requirements/development.txt - python -m pip install -e ".[development]" + python -m pip install --no-dependencies -e . install-production: python -m pip install -r requirements/production.txt - python -m pip install ".[sentry-enabled]" + python -m pip install --no-dependencies . diff --git a/gitlab/release.yml b/gitlab/release.yml deleted file mode 100644 index 571be3c..0000000 --- a/gitlab/release.yml +++ /dev/null @@ -1,12 +0,0 @@ -release: - stage: release - image: registry.gitlab.com/gitlab-org/release-cli:latest - rules: - - if: $CI_COMMIT_TAG - script: - - echo 'running release job' - release: - name: 'Release $CI_COMMIT_TAG' - description: './CHANGELOG.md' - tag_name: '$CI_COMMIT_TAG' - ref: '$CI_COMMIT_TAG' diff --git a/gitlab/test.yml b/gitlab/test.yml deleted file mode 100644 index 6d82d98..0000000 --- a/gitlab/test.yml +++ /dev/null @@ -1,9 +0,0 @@ -tests: - stage: test - coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' - image: python:3.11 - before_script: - - pip install -r requirements/ci.txt - script: - - coverage run --module unittest - - coverage report diff --git a/pyproject.toml b/pyproject.toml index cdca3ec..d9423bc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,12 +23,12 @@ development = [ ci = ['coverage>=5.3.1'] sentry-enabled = ['sentry_sdk>=0.19.5'] +[tool.setuptools.packages] +find = {include = ['transip_client']} + [project.scripts] transip-listen = 'transip_client.cli:run' [build-system] requires = ['setuptools'] build-backend = 'setuptools.build_meta' - -[tool.setuptools.packages] -find = {include = ['transip_client']} diff --git a/requirements/ci.txt b/requirements/ci.txt index 37fc108..e9f05c5 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -2,59 +2,101 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --extra=ci --extra=development --output-file=requirements/ci.txt pyproject.toml +# pip-compile --extra=ci --extra=development --output-file=requirements/ci.txt pyproject.toml requirements/development.txt # -autoflake==2.1.1 - # via transip-client (pyproject.toml) +autoflake==2.2.0 + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) black==23.3.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) build==0.10.0 - # via pip-tools + # via + # -r requirements/development.txt + # pip-tools certifi==2023.5.7 - # via requests + # via + # -r requirements/development.txt + # requests cffi==1.15.1 - # via cryptography + # via + # -r requirements/development.txt + # cryptography charset-normalizer==3.1.0 - # via requests + # via + # -r requirements/development.txt + # requests click==8.1.3 # via + # -r requirements/development.txt # black # pip-tools # transip-client (pyproject.toml) coverage==7.2.7 # via transip-client (pyproject.toml) cryptography==41.0.1 - # via transip-client (pyproject.toml) + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) idna==3.4 - # via requests + # via + # -r requirements/development.txt + # requests isort==5.12.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) mypy-extensions==1.0.0 - # via black + # via + # -r requirements/development.txt + # black packaging==23.1 # via + # -r requirements/development.txt # black # build pathspec==0.11.1 - # via black + # via + # -r requirements/development.txt + # black pip-tools==6.13.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) platformdirs==3.8.0 - # via black + # via + # -r requirements/development.txt + # black pycparser==2.21 - # via cffi + # via + # -r requirements/development.txt + # cffi pyflakes==3.0.1 - # via autoflake + # via + # -r requirements/development.txt + # autoflake pyproject-hooks==1.0.0 - # via build + # via + # -r requirements/development.txt + # build python-dotenv==1.0.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) requests==2.31.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/development.txt + # transip-client (pyproject.toml) urllib3==2.0.3 - # via requests + # via + # -r requirements/development.txt + # requests wheel==0.40.0 - # via pip-tools + # via + # -r requirements/development.txt + # pip-tools # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/development.txt b/requirements/development.txt index 4891122..b6ded33 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -2,29 +2,40 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --extra=development --output-file=requirements/development.txt pyproject.toml +# pip-compile --extra=development --output-file=requirements/development.txt pyproject.toml requirements/base.txt # -autoflake==2.1.1 +autoflake==2.2.0 # via transip-client (pyproject.toml) black==23.3.0 # via transip-client (pyproject.toml) build==0.10.0 # via pip-tools certifi==2023.5.7 - # via requests + # via + # -r requirements/base.txt + # requests cffi==1.15.1 - # via cryptography + # via + # -r requirements/base.txt + # cryptography charset-normalizer==3.1.0 - # via requests + # via + # -r requirements/base.txt + # requests click==8.1.3 # via + # -r requirements/base.txt # black # pip-tools # transip-client (pyproject.toml) cryptography==41.0.1 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) idna==3.4 - # via requests + # via + # -r requirements/base.txt + # requests isort==5.12.0 # via transip-client (pyproject.toml) mypy-extensions==1.0.0 @@ -40,17 +51,25 @@ pip-tools==6.13.0 platformdirs==3.8.0 # via black pycparser==2.21 - # via cffi + # via + # -r requirements/base.txt + # cffi pyflakes==3.0.1 # via autoflake pyproject-hooks==1.0.0 # via build python-dotenv==1.0.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) requests==2.31.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) urllib3==2.0.3 - # via requests + # via + # -r requirements/base.txt + # requests wheel==0.40.0 # via pip-tools diff --git a/requirements/production.txt b/requirements/production.txt index 9da3bd8..e7485bc 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -2,31 +2,49 @@ # This file is autogenerated by pip-compile with Python 3.11 # by the following command: # -# pip-compile --extra=sentry-enabled --output-file=requirements/production.txt pyproject.toml +# pip-compile --extra=sentry-enabled --output-file=requirements/production.txt pyproject.toml requirements/base.txt # certifi==2023.5.7 # via + # -r requirements/base.txt # requests # sentry-sdk cffi==1.15.1 - # via cryptography + # via + # -r requirements/base.txt + # cryptography charset-normalizer==3.1.0 - # via requests + # via + # -r requirements/base.txt + # requests click==8.1.3 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) cryptography==41.0.1 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) idna==3.4 - # via requests + # via + # -r requirements/base.txt + # requests pycparser==2.21 - # via cffi + # via + # -r requirements/base.txt + # cffi python-dotenv==1.0.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) requests==2.31.0 - # via transip-client (pyproject.toml) + # via + # -r requirements/base.txt + # transip-client (pyproject.toml) sentry-sdk==1.26.0 # via transip-client (pyproject.toml) urllib3==2.0.3 # via + # -r requirements/base.txt # requests # sentry-sdk