{ "info": { "author": "Thomas Lehmann", "author_email": "thomas.lehmann.private@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: Unix", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Utilities" ], "description": "Spline\n======\n\n.. image:: https://img.shields.io/pypi/v/spline.svg\n :target: https://pypi.python.org/pypi/spline/\n :alt: Latest Version\n\n.. image:: https://img.shields.io/pypi/pyversions/spline.svg\n :target: https://pypi.python.org/pypi/spline/\n :alt: Python Versions\n\n.. image:: https://img.shields.io/pypi/format/spline.svg\n :target: https://pypi.python.org/pypi/spline/\n :alt: Format\n\n.. image:: https://img.shields.io/pypi/l/spline.svg\n :target: https://pypi.python.org/pypi/spline/\n :alt: License\n\n.. image:: https://img.shields.io/pypi/l/spline.svg\n :target: https://pypi.python.org/pypi/spline/\n :alt: License\n\n.. image:: https://img.shields.io/coveralls/github/Nachtfeuer/pipeline.svg\n :target: https://coveralls.io/github/Nachtfeuer/pipeline?branch=master\n\nMotivation\n----------\nImplementing coded pipelines with Jenkins you have to deal with\nGroovy, Jenkinsfile and a so called DSL which allows you interfacing\nwith Jenkins and its plugins. However the whole setup is usually designed\nto run somewhere remote fetching a revision of your code and running\nthe pipeline on it. Creating or extending such a pipeline locally running\non your current code is - finally - not comfortable: that setup forces\nyou a lot to split into Groovy and Bash scripts that allow you to run\nthings locally which increases complexity even more.\n\nAlso you are not flexible in terms of environments. You cannot\nrun same pipeline in Travis CI (and such tools). \n\n**Spline is a way to get out of this**: You can run the whole pipeline\nvia command line on your machine. Also you can run matrix builds and\nyou can filter for certain tasks of your interest. The pipeline for the\nspline tool itself supporting a lot Python version can be defined\nin one file with roughly 170 lines of yaml code only. Integration into\nJenkinsfile and/or Travis CI isn't that hard anymore.\n\n\nQuickstart\n----------\nInstallation can be simply done with (optional with --upgrade for updating the installed version):\n\n::\n\n pip install spline\n\nYou require a pipeline definition file (Yaml). As an\nexample feel free to do following:\n\n::\n\n sudo pip install spline\n git clone https://github.com/Nachtfeuer/pipeline.git\n cd pipeline\n pipeline --definition=pipeline.yaml --matrix-tags=py36\n\nWhen the file in your project is `pipeline.yaml`you als can leave out\nthe `--definition` parameter.\n\nIf you leave out the matrix tag filter then spline will run\nall python version as defined in the matrix (see badges too).\n\nFeatures\n--------\n - automatic schema validation for yaml file\n - matrix based pipeline\n - pipeline stages (named groups)\n - shell script execution: inline and file\n - environment variables merged across each level: matrix, pipeline, stage, and tasks\n - support for model data (a dictionary of anything you need)\n - cleanup hook\n - filtered execution via tags (matrix and/or tasks)\n - supporting Jinja templating in scripts (also nested inside model)\n - support for Docker containers and Docker images\n - support for the Packer tool\n - execution time on each level: pipeline, stage, tasks and shell (event logging)\n - usable by Jenkinsfile as well as by a `.travis.yml` (or other pipelines).\n - dry run and debug support\n - support for Python scripts\n - support for task variables\n - support for conditional tasks\n - enabled for code reuse: !include statement\n\nDocumentation\n-------------\nFor further details about what you can do please read the\ndocumentation. You have two options:\n\n - follow the links on the Github main page: https://github.com/Nachtfeuer/pipeline\n - follow the link to read the docs: http://spline.readthedocs.io/en/master/\n - presentation: https://gitpitch.com/Nachtfeuer/pipeline/master\n\nAbout Names\n------------\n - **spline**: (**s**)hell oriented (**p**)ipe(**line**)\n - **Nachtfeuer**: A demon (finally) fighting for the good side in a great fantasy (https://www.amazon.de/dp/B00946NO6I).\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Nachtfeuer/pipeline", "keywords": "pipeline tool ci/cd bash docker packer ansible python", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "spline", "package_url": "https://pypi.org/project/spline/", "platform": "", "project_url": "https://pypi.org/project/spline/", "project_urls": { "Homepage": "https://github.com/Nachtfeuer/pipeline" }, "release_url": "https://pypi.org/project/spline/1.12/", "requires_dist": [ "click", "jinja2", "pyaml", "schema" ], "requires_python": "", "summary": "(s)hell oriented (p)ipe(line) tool for ci/cd", "version": "1.12" }, "last_serial": 4417756, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "ac9524cf8e25ab8facfe2c70d3e63d4a", "sha256": "2d7eca2b9ddcf3f4ce88943fa1b461f4958ef2abb518e1a82f9ac17e07332053" }, "downloads": -1, "filename": "spline-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac9524cf8e25ab8facfe2c70d3e63d4a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34557, "upload_time": "2017-11-04T17:00:20", "url": "https://files.pythonhosted.org/packages/83/85/1cff14dfe4dee730976679e7477572514176641c49f5bbede9ffca8431d0/spline-0.1-py2.py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1da645dab3586227810dc8b8d0c8b73b", "sha256": "aa275e0c25d23473f1b06947233df224bc39e83c6d559166cb75651544f151d0" }, "downloads": -1, "filename": "spline-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1da645dab3586227810dc8b8d0c8b73b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35153, "upload_time": "2017-11-04T18:43:31", "url": "https://files.pythonhosted.org/packages/7d/2a/80dc7533c0fe6db7a1e1de09e7fada421f3b7e98a6bef9d5f9cecd1f4eb4/spline-0.2-py2.py3-none-any.whl" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "af5da08c7a4c99a48acda0b6520a287a", "sha256": "e793e7d6e2b88223d561458dad41d83b725e53fdcd66bae0728d2a045ecea357" }, "downloads": -1, "filename": "spline-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af5da08c7a4c99a48acda0b6520a287a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35718, "upload_time": "2017-11-08T04:49:02", "url": "https://files.pythonhosted.org/packages/fa/ad/f837ab03c7dcdef1af31a1338c8213ae199e988a67042bb22c3c93fa6ff6/spline-1.0-py2.py3-none-any.whl" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "4b4ed47435843fda8389c30575ed2437", "sha256": "4d9e6eefede223487d3872674cd3b48ea0ecd4fd9827cafbf57616ed91acf2f0" }, "downloads": -1, "filename": "spline-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4b4ed47435843fda8389c30575ed2437", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 35926, "upload_time": "2017-11-21T17:24:33", "url": "https://files.pythonhosted.org/packages/39/49/59537847956754eb4737b28dcc92c10e47197049af0feeb4956085aafbef/spline-1.1-py2.py3-none-any.whl" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "52d661db37d60ab028e4f778ba9d8767", "sha256": "98ac7f904ccf6312b153d4ed1fca8d2d702e521f9ae9a6b17c37bb7e6fc5e506" }, "downloads": -1, "filename": "spline-1.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "52d661db37d60ab028e4f778ba9d8767", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57839, "upload_time": "2018-05-07T04:32:19", "url": "https://files.pythonhosted.org/packages/f6/2c/1a22694f7c86efe7aa682035fdfbe6908a7a7cf3135f23bfac080bd15616/spline-1.10-py2.py3-none-any.whl" } ], "1.10.1": [ { "comment_text": "", "digests": { "md5": "f441b993dc7c1c5ef0416fab018c5331", "sha256": "17b3c802e26e7d3fc06cf081f61976602dc8f6ad98ed0e7a751136cda359c0eb" }, "downloads": -1, "filename": "spline-1.10.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f441b993dc7c1c5ef0416fab018c5331", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57905, "upload_time": "2018-06-03T10:07:48", "url": "https://files.pythonhosted.org/packages/29/f7/99a205a9049df846093a5a42a24ebf3f05a1fb2cf285dd931c986373177f/spline-1.10.1-py2.py3-none-any.whl" } ], "1.10.2": [ { "comment_text": "", "digests": { "md5": "18164e9b624681f0d0204dae928eaad5", "sha256": "818aefd19434571c5e534733599af9455c49d51ca259ae57c23cda1371029ae7" }, "downloads": -1, "filename": "spline-1.10.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "18164e9b624681f0d0204dae928eaad5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 57897, "upload_time": "2018-06-13T17:41:15", "url": "https://files.pythonhosted.org/packages/ed/be/27fcbccb4c1b2cd9a9eedb78dd8c528edea2d03c0cdda99220d19f07810a/spline-1.10.2-py2.py3-none-any.whl" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "d9242c479e571265ad56625ecb9537e8", "sha256": "c99ab15c6ce8d2099ae6a6239ba1caca6903e48a98bdbe37e41814eb9e296393" }, "downloads": -1, "filename": "spline-1.11-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d9242c479e571265ad56625ecb9537e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63829, "upload_time": "2018-09-03T18:22:11", "url": "https://files.pythonhosted.org/packages/c8/fa/782f9c9174fa75eb24b1068bbe9d8a7e8c57c65b155e1d4b794c0c16e6d9/spline-1.11-py2.py3-none-any.whl" } ], "1.12": [ { "comment_text": "", "digests": { "md5": "4a0abf33ae9718d33d618a7eefea8304", "sha256": "d53ccef8d8b723a4fc5c4ecd8f4965922f406d840ebd7c31f3191c3fcfb8d39b" }, "downloads": -1, "filename": "spline-1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a0abf33ae9718d33d618a7eefea8304", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63953, "upload_time": "2018-10-26T03:54:27", "url": "https://files.pythonhosted.org/packages/54/05/d4df44ae82de32963041e4f88ced11751aa935c47f774e8b2b371303716e/spline-1.12-py2.py3-none-any.whl" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "2475a9440ba6e5ac53f4d568646516ca", "sha256": "be993cdc77782ad5ff36eaac5e4288c5c558755cfdb4ac387266d927d9d0da77" }, "downloads": -1, "filename": "spline-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2475a9440ba6e5ac53f4d568646516ca", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40135, "upload_time": "2017-12-10T12:53:37", "url": "https://files.pythonhosted.org/packages/df/83/e2addf11ea5a093cba892eda3eecd7a8e57b7816d6516153d5cb6de1bb79/spline-1.2-py2.py3-none-any.whl" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "61f9c5c56b7f25a8c753578420eb89b8", "sha256": "2d10bc5b98ec141c1456910e92d98f1f7a9982cead0a9dc55433551e3d9a03ab" }, "downloads": -1, "filename": "spline-1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "61f9c5c56b7f25a8c753578420eb89b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 46699, "upload_time": "2017-12-20T05:26:13", "url": "https://files.pythonhosted.org/packages/77/a3/569c40d8f2c741d4ca84a4fae53fbb234b83f8b40e28b629d5b4481425c7/spline-1.3-py2.py3-none-any.whl" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "28d5950706133b11f95ba8378188a4ed", "sha256": "9e1fb4cb703f282e80c1eb11b314518a0c8a63d8cb721ce206bd8d6903054fae" }, "downloads": -1, "filename": "spline-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "28d5950706133b11f95ba8378188a4ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47893, "upload_time": "2017-12-22T10:17:29", "url": "https://files.pythonhosted.org/packages/c3/1a/bedcd0f101af15207c0c254c5101a6e1049412feafa6362a4feaa3580cb6/spline-1.4-py2.py3-none-any.whl" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "a6a1528e8eafba02e98d8d34d78902f8", "sha256": "115641840432f7dd6745273ba908d6ba4ac27d888902baed0447421538e7f655" }, "downloads": -1, "filename": "spline-1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a6a1528e8eafba02e98d8d34d78902f8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 53159, "upload_time": "2017-12-27T13:28:42", "url": "https://files.pythonhosted.org/packages/3c/a3/064f8b13f28303fc79b99698772dd6ab1090e9f66f8bc8483a74e85656c8/spline-1.5-py2.py3-none-any.whl" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "f805d0e381a35d79ac9a75b57f3d53a9", "sha256": "90a1892e8da307d204f94e92551494286c63c2c05d4913f0ae23fa92e5e9dd1c" }, "downloads": -1, "filename": "spline-1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f805d0e381a35d79ac9a75b57f3d53a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34242, "upload_time": "2018-01-06T14:22:35", "url": "https://files.pythonhosted.org/packages/54/06/62c0a259ecc5d0787a5a6aafccbd752d380b76f275e5bd6d45ff903eb6df/spline-1.6-py2.py3-none-any.whl" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "9d44aec2193ada67a2231724addd18c9", "sha256": "fe4ef2e7d23198df1ff43e895f70fd61bed0f4f37ce3e0c7a74bb581c4e27190" }, "downloads": -1, "filename": "spline-1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9d44aec2193ada67a2231724addd18c9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42622, "upload_time": "2018-02-01T04:36:05", "url": "https://files.pythonhosted.org/packages/5b/69/d9456c69b4c834bca682c0a620f140fea119cf1e2f1b77a6aa2611bd05f0/spline-1.7-py2.py3-none-any.whl" } ], "1.7.1": [ { "comment_text": "", "digests": { "md5": "d491476f0529f32ae69db6760a90b593", "sha256": "fc675096b1e3b20c5eaefa108222b06dce3df5c2cf2e7ff80036f89fbf2f515b" }, "downloads": -1, "filename": "spline-1.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d491476f0529f32ae69db6760a90b593", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47521, "upload_time": "2018-02-01T17:24:23", "url": "https://files.pythonhosted.org/packages/34/e1/832ed7dec9d08ec64541f7c651b9bdaef15399b7e0edc3770d002d8c91e3/spline-1.7.1-py2.py3-none-any.whl" } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "1f38506e49514f1df9881c0f73920acb", "sha256": "afb7ddc8db9cea6bd35c1c802425490be1b197a550c0d9d9e72f3a363ff1b4f2" }, "downloads": -1, "filename": "spline-1.7.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f38506e49514f1df9881c0f73920acb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 47651, "upload_time": "2018-02-28T05:21:58", "url": "https://files.pythonhosted.org/packages/d0/b1/22d7343f0f0013c4efe777cd76eed46960f189a167a0cfbe31e111f33a09/spline-1.7.2-py2.py3-none-any.whl" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "5d384495365d0c2d90ff1c86543f9b43", "sha256": "73a6c9c061a910dee524d7a41ca8f9842928a0e36cdc2a50980ce9d8e92386ad" }, "downloads": -1, "filename": "spline-1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d384495365d0c2d90ff1c86543f9b43", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 50098, "upload_time": "2018-03-11T11:17:34", "url": "https://files.pythonhosted.org/packages/38/3c/b8a578da6d05606976d5566289d1d48bcfb7641f69c8745050e75b566461/spline-1.8-py2.py3-none-any.whl" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "da63db4528ab888dd55bd0ed8efd8edf", "sha256": "fa11ea2dc54e1809f60094a06ae33eb0ae5ac5474d3bf0f2a27b4e919434bfeb" }, "downloads": -1, "filename": "spline-1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "da63db4528ab888dd55bd0ed8efd8edf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 54684, "upload_time": "2018-04-08T15:08:13", "url": "https://files.pythonhosted.org/packages/f7/c2/2fc8330041bea7b14b38dff9058686eae9ac7c44adc0775f45be01898664/spline-1.9-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4a0abf33ae9718d33d618a7eefea8304", "sha256": "d53ccef8d8b723a4fc5c4ecd8f4965922f406d840ebd7c31f3191c3fcfb8d39b" }, "downloads": -1, "filename": "spline-1.12-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4a0abf33ae9718d33d618a7eefea8304", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63953, "upload_time": "2018-10-26T03:54:27", "url": "https://files.pythonhosted.org/packages/54/05/d4df44ae82de32963041e4f88ced11751aa935c47f774e8b2b371303716e/spline-1.12-py2.py3-none-any.whl" } ] }