Module with functionality around Continuous Integration and Continuous Delivery.
Why to use this and not Travis or Circle CI? It's local and it's fast. You can setup it as a task in IDE and if some phase fails, you know it soon and before pushing to repo.
You can also import mypythontools in your CI/CD and use it there of course.
If you are not sure whether the structure of your app will work with this code, check project-starter-cookiecutter
on GitHub.
Official documentation - readthedocs
Official repo - GitHub
Python >=3.6 (Python 2 is not supported).
Install with
pip install mypythontools_cicd
There are many extras requirements that can be used with square brackets like for example
pip install mypythontools_cicd[tests]
You can use dev
which install libraries used during development like for example pylint. Most subpackages
has own extras. 'build_app','deploy', 'docs', 'git', 'misc', 'tests', 'venvs'
in particular.
There is also cicd
which install all libraries necessary for cicd, but without dev dependencies. Last
extras are all
which use dev as well as cicd.
Package is divided into several subpackages
Build your application to .exe with pyinstaller. It also builds javascript frontend with npm build if configured, which is used mostly in PyVueEel applications.
Pipeline for all the other submodules, that provide configurable CI/CD.
Build package and push it to PyPi.
Provide documentation with sphinx.
Works with git. You can check branch here, commit all changes or push to repository.
Miscellaneous functions that are too small to have own subpackage, like for example formatting with black.
For example, you can work with requirements here. Usually used in 'setup.py'.
Subpackage where you can get paths used in your project (path to README, __init__.py etc.).
Runs tests in more venvs with different python versions, also with wsl linux if configured and create coverage.
Works with virtual environments.
There is extra library in separate repository which is not about CICD, but normal python helpers.
https://github.com/Malachov/mypythontools
This can help you with a lot of stuff around CICD like getting project paths, generating docs, testing, deploying to PyPi etc.