{ "info": { "author": "Guilherme Scaranse", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "

Arcli

\n\n
\n\n [![GitHub Issues](https://img.shields.io/github/issues/guiscaranse/arcli.svg)](https://github.com/guiscaranse/arcli/issues)\n [![GitHub Pull Requests](https://img.shields.io/github/issues-pr/guiscaranse/arcli.svg)](https://github.com/guiscaranse/arcli/pulls)\n [![License](https://img.shields.io/badge/license-Apache2.0-blue.svg)](/LICENSE)\n\n
\n\n---\n\n

Arcli is a lightweight cross-platform builder inspired by TravisCI. It can automate deploying aplications with a single command line, and is highly extensive.\n
\n

\n\n## \ud83d\udcdd Table of Contents\n- [About](#about)\n- [Getting Started](#getting_started)\n- [Usage and definitions](#usage)\n- [Built Using](#built_using)\n- [Contributing](../CONTRIBUTING.md)\n\n## \ud83e\uddd0 About \nArcli started as a hobby and quickly evolved into something incredibly useful that I implement in my daily life. With Arcli you can write code routines to be executed at the time of a deployment, as well as optional steps that can be triggered by certain conditions.\n\n## \ud83c\udfc1 Getting Started \nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Installing\nYou can install Arcli using pip \n\n```sh\npip install arcli\n```\n\nor by downloading one of our pre-compiled binaries.\n\n```sh\n# Download\nwget https://github.com/guiscaranse/arcli/releases/latest/download/arcli-linux_arm64.tar.gz\n# Extract\ntar arcli-linux_arm64.tar.gz\n# Make executable\nchmod u+x arcli\n```\n\nStart using it or add it to your `PATH` \n\n```sh\narcli run\n```\n\n## \ud83c\udf88 Usage and Definitions \nArcli will try to find and read an Arcli File (`arcli.yml`) where it will parse and run it.\n\n### Arcli File\nAn Arcli file is an instruction file written in YAML. Arcli will interpret it, perform validations, and thus run the codes described.\n\nHere it is a sample Arcli file (more samples on `samples`).\n\n```yaml\narcli: 0.1\nos: linux\ndependencies:\n - git\nenv:\n - TEST=sampleenv\nruntime:\n - 'echo Hello World'\n - $step checkgit\n - 'echo Arcli End'\nstep @checkgit:\n trigger:\n name: GitDiff\n args: [\"arcli/*.py\"]\n script:\n - 'echo Python Files Modified'\n```\n\n#### Arcli file definitions\n\n| Key | Type | Optional | Description |\n|--------------|-------|----------|------------------------------------------------------------------------------------------------------------------|\n| arcli | float | No | Refers to the version of Arcli that that file was made, it is possible to use Semantic Versioning for this field |\n| os | str | Yes | Which operating system this file was made to run [`linux`, `osx`, `windows`, `any` (default)] |\n| dependencies | list | Yes | Which executables this file will need to use |\n| env | list | Yes | List of environment variables that will be injected at runtime. |\n| runtime | list | No | List of main commands to be executed by Arcli. You can reference steps using `$step [step name]` |\n\n#### Step and Triggers definitions\nSteps are separate blocks of code that can be executed under certain circumstances when triggered by Triggers.\n\nThis is how a step look like:\n\n```yaml\nstep @checkgit:\n trigger:\n name: GitDiff\n args: [\"arcli/*.py\"]\n script:\n - 'echo Python Files Modified'\n```\n\n| Key | Type | Optional | Description |\n|---------|------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| step | str | No | It will be used to refer to the step in the runtime, you must name it after the @. Example: `step @mystep` |\n| trigger | obj | Yes | Not all steps need to have a trigger, in the absence of a trigger it will always be executed. You can see the triggers available in `arcli/triggers`. |\n| script | list | Yes | Code to be executed if the step is valid (trigger is triggered or trigger is missing) |\n\nThis is how a trigger looks like:\n\n```yaml\ntrigger:\n name: GitDiff\n args: [\"arcli/*.py\"]\n options:\n autopull: true\n```\n\n| Key | Type | Optional | Description |\n|---------|------|----------|--------------------------------------------------------------------------------|\n| name | str | No | It will be used to identify the trigger, it must be the same as the class name |\n| args | list | Yes | Arguments that can be passed at the time of executing the trigger |\n| options | obj | Yes | Advanced options that can contain keys and values to be passed to the trigger |\n\nTriggers documentation can be found in each respective trigger file.\n\n\n## \u26cf\ufe0f Built Using \n- [Python](https://www.python.org/) - Python\n- [Click](https://click.palletsprojects.com/en/master/) - CLI Framework\n- [Nuitka](http://nuitka.net) - Binaries generator", "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/guiscaranse/arcli", "keywords": "build,travisci,arcli", "license": "Apache-2.0", "maintainer": "Guilherme Scaranse", "maintainer_email": "", "name": "arcli", "package_url": "https://pypi.org/project/arcli/", "platform": "", "project_url": "https://pypi.org/project/arcli/", "project_urls": { "Homepage": "https://github.com/guiscaranse/arcli", "Repository": "https://github.com/guiscaranse/arcli" }, "release_url": "https://pypi.org/project/arcli/0.1.1/", "requires_dist": [ "click (>=7.0,<8.0)", "PyYAML (>=5.1.2,<6.0.0)", "pydantic[ujson] (>=0.31.1,<0.32.0)", "semantic_version (>=2.6.0,<3.0.0)", "gitpython (>=2.1.13,<3.0.0)", "colorama (>=0.4.1,<0.5.0)" ], "requires_python": ">=3.6,<4.0", "summary": "A TravisCI inspired builder", "version": "0.1.1" }, "last_serial": 5647141, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2570694258a2b302457b22a8949fa4f2", "sha256": "17f3cb92afdaf3a6b4d754779b3314e28f1f5699e5efc68f629ddcd84d908a1f" }, "downloads": -1, "filename": "arcli-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2570694258a2b302457b22a8949fa4f2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14543, "upload_time": "2019-08-07T21:42:52", "url": "https://files.pythonhosted.org/packages/64/78/a15f87a6a11776ab1627cb3d7ec9c079aba7f197aa5b527bbc0691ce6b12/arcli-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aadf0a014edde8cd3996b9a9cc428e7d", "sha256": "5f1b9dc95f3d285a0d5b6f63658fcdb1f3ebf1fb6c9ca95cffd3c241da4497ec" }, "downloads": -1, "filename": "arcli-0.1.0.tar.gz", "has_sig": false, "md5_digest": "aadf0a014edde8cd3996b9a9cc428e7d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 13200, "upload_time": "2019-08-07T21:42:55", "url": "https://files.pythonhosted.org/packages/a9/63/9ef2fcc491327891050e70d52a3a120c3a3d3b415c290d76307a48733f23/arcli-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "f702d181c84c6e0dbcbe07352f09c1e7", "sha256": "441d146646db0c15c5bdba448eebeb9707cf5bc5b084faea872068213dbec100" }, "downloads": -1, "filename": "arcli-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f702d181c84c6e0dbcbe07352f09c1e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14840, "upload_time": "2019-08-07T21:49:28", "url": "https://files.pythonhosted.org/packages/3f/0d/14374d588cd56f3207d1532bc9bfc723e15a6a23461315a38da03c456133/arcli-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ebff2f1fb40e0547735cd4c2aa210b2", "sha256": "13c7203e7bf7669ee6ab162c71affa66659965313786776e66829ca6af74a2a0" }, "downloads": -1, "filename": "arcli-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9ebff2f1fb40e0547735cd4c2aa210b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 13346, "upload_time": "2019-08-07T21:49:29", "url": "https://files.pythonhosted.org/packages/57/06/15358ef3458ddce08155c462172f4c2b0460fceac191bd826100d44b82ff/arcli-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f702d181c84c6e0dbcbe07352f09c1e7", "sha256": "441d146646db0c15c5bdba448eebeb9707cf5bc5b084faea872068213dbec100" }, "downloads": -1, "filename": "arcli-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f702d181c84c6e0dbcbe07352f09c1e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 14840, "upload_time": "2019-08-07T21:49:28", "url": "https://files.pythonhosted.org/packages/3f/0d/14374d588cd56f3207d1532bc9bfc723e15a6a23461315a38da03c456133/arcli-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ebff2f1fb40e0547735cd4c2aa210b2", "sha256": "13c7203e7bf7669ee6ab162c71affa66659965313786776e66829ca6af74a2a0" }, "downloads": -1, "filename": "arcli-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9ebff2f1fb40e0547735cd4c2aa210b2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 13346, "upload_time": "2019-08-07T21:49:29", "url": "https://files.pythonhosted.org/packages/57/06/15358ef3458ddce08155c462172f4c2b0460fceac191bd826100d44b82ff/arcli-0.1.1.tar.gz" } ] }