{ "info": { "author": "Eduardo Dobay", "author_email": "edudobay@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Version Control :: Git" ], "description": "# simple-git-deploy\n\n\n \"Latest\n\nA command-line utility for easy and reliable management of manual deployments from Git repositories.\n\nEven manual deployments can be made reliable if some minimal automation is applied. This utility performs _atomic_ deployments from a Git repository, with an optional _build_ phase (e.g. installing dependencies). The previous deployment is not affected until the build completes successfully \u2013 no more inconsistency errors when you update your Git branch but your application is not yet fully updated \u2013 e.g. missing new dependencies from your package manager.\n\nEach deployment is built in a new directory made just for that deployment. Previous deployments are kept (and can be later purged), and the target is only updated when the build completes \u2013 that\u2019s what we meant by _atomic_! If the build fails, the target will not be updated.\n\nThe meaning of _build_ is defined by the user; it can be any command runnable from a shell. Configuration is made in a simple `.ini` file.\n\n\n## Installation\n\nRequirements:\n\n* Python \u2265 3.5 (has been tested with 3.6 and 3.7 but should work with 3.5 nonetheless)\n* Git \u2265 2.7 (depends on the `git worktree` feature)\n\nInstall via **pip**:\n\n```\n$ pip install git+https://github.com/edudobay/simple-git-deploy.git\n```\n\nIf this fails and you have no idea what to do, you can try adding the `--user` option after `pip install` and before the URL.\n\n\n## Usage\n\nAfter [installing this utility](#installation), you can run `simple-git-deploy --help` for basic usage instructions.\n\nThe easiest way is to run `simple-git-deploy deploy `. But before first usage you must create a `deploy.ini` file with at least the settings below (look further for an example):\n\n* `dirs.deploy`: directory where your application will be deployed. The current deployment will be available at `current` under this directory. This will be a symlink to the actual deployment directory.\n\n So, for example, if you have a PHP application, you can point Nginx to the `/app/deployments/current` directory which will contain a working tree of your Git repository and will be updated whenever you deploy a new version, provided you add this to your `deploy.ini`:\n\n ```ini\n [dirs]\n deploy = /app/deployments\n ```\n\n Each deployment will also live in this directory with a name containing the date/time of the deployment, the Git commit hash and the name of the branch/tag that was deployed.\n\n* `build.run`: which command to run in the _build_ phase. Typical usages are running your package manager, copying configuration files, compiling assets.\n\n This is run as a shell command line \u2013 so you can chain commands as in `npm install && npm run build`.\n\nA complete configuration file would thus be:\n\n```ini\n[dirs]\ndeploy = /app/deployments\n\n[build]\nrun = npm install && npm run build\n```\n\n**It is assumed that the build will be run in the same host where the application is to be deployed.** Also, the user running this script must have **permission to write on the deployment directory**.\n\n\n### Purging old deployments\n\nYou can purge old deployments with `simple-git-deploy purge`. There are two ways to specify what exactly is to be removed:\n\n* `--keep-latest N`: keep only the latest _N_ deployments (other than the current one). With _N=0_, only the current deployment is kept, and with _N=1_ only one deployment other than the current is kept.\n* `--older-than DATETIME`: discard deployments with a timestamp strictly older than the given date/time. A wide range of both absolute and relative formats is accepted; see the [dateparser documentation](https://dateparser.readthedocs.io/en/latest/) for full information. Common cases may be written as `10d`, `1w` (10 days and 1 week, respectively).\n\n\n## Development setup\n\nIf you want to set this project up for development, see [CONTRIBUTING.md](./CONTRIBUTING.md).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/edudobay/simple-git-deploy", "keywords": "deployment automation git", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "simple-git-deploy", "package_url": "https://pypi.org/project/simple-git-deploy/", "platform": "", "project_url": "https://pypi.org/project/simple-git-deploy/", "project_urls": { "Homepage": "https://github.com/edudobay/simple-git-deploy", "Issue Tracker": "https://github.com/edudobay/simple-git-deploy/issues", "Source": "https://github.com/edudobay/simple-git-deploy" }, "release_url": "https://pypi.org/project/simple-git-deploy/0.4.0/", "requires_dist": [ "dateparser (>=0.7.0)", "inquirer" ], "requires_python": ">=3.5", "summary": "A command-line utility for easy and reliable management of manual deployments from Git repositories", "version": "0.4.0" }, "last_serial": 5198407, "releases": { "0.4.0": [ { "comment_text": "", "digests": { "md5": "ef4c272a042a43a0fa5084f8ea4cd66d", "sha256": "3553476e4461e52e6c3ac3f70b91f62cc5ced3d6d330e0d33d9250b81e1e6d6c" }, "downloads": -1, "filename": "simple_git_deploy-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ef4c272a042a43a0fa5084f8ea4cd66d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24550, "upload_time": "2019-04-28T03:09:56", "url": "https://files.pythonhosted.org/packages/7d/02/db20cb61b2c2ee1eabee0bfdbf8fdf05a18164f6ea81a8a3dd3d08b05a0c/simple_git_deploy-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "905ebf607792c2c5cfad7093cb4b4dc8", "sha256": "9bb137f95400f8a048f82db12aea8012ff0e94613043b1febeb6f3760ab30e7b" }, "downloads": -1, "filename": "simple-git-deploy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "905ebf607792c2c5cfad7093cb4b4dc8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 10725, "upload_time": "2019-04-28T03:10:10", "url": "https://files.pythonhosted.org/packages/3d/17/9294ad9f6364f90e1a2a58511c51dd683caf0ad33108f87d3b4afe402e6c/simple-git-deploy-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ef4c272a042a43a0fa5084f8ea4cd66d", "sha256": "3553476e4461e52e6c3ac3f70b91f62cc5ced3d6d330e0d33d9250b81e1e6d6c" }, "downloads": -1, "filename": "simple_git_deploy-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ef4c272a042a43a0fa5084f8ea4cd66d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 24550, "upload_time": "2019-04-28T03:09:56", "url": "https://files.pythonhosted.org/packages/7d/02/db20cb61b2c2ee1eabee0bfdbf8fdf05a18164f6ea81a8a3dd3d08b05a0c/simple_git_deploy-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "905ebf607792c2c5cfad7093cb4b4dc8", "sha256": "9bb137f95400f8a048f82db12aea8012ff0e94613043b1febeb6f3760ab30e7b" }, "downloads": -1, "filename": "simple-git-deploy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "905ebf607792c2c5cfad7093cb4b4dc8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 10725, "upload_time": "2019-04-28T03:10:10", "url": "https://files.pythonhosted.org/packages/3d/17/9294ad9f6364f90e1a2a58511c51dd683caf0ad33108f87d3b4afe402e6c/simple-git-deploy-0.4.0.tar.gz" } ] }