{ "info": { "author": "Joscha Feth", "author_email": "joscha@feth.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Programming Language :: Python" ], "description": "=====\nbkyml\n=====\n.. image:: https://travis-ci.org/joscha/bkyml.svg?branch=master\n :target: https://travis-ci.org/joscha/bkyml\n \n.. image:: https://coveralls.io/repos/github/joscha/bkyml/badge.svg?branch=master\n :target: https://coveralls.io/github/joscha/bkyml?branch=master\n\nA CLI tool to generate a ``pipeline.yaml`` file for Buildkite on the fly.\n\nInstall via :code:`pip install bkyml` (see https://pypi.org/project/bkyml/)\n\n\nExample:\n\n.. code:: shell\n\n bkyml comment 'Frontend tests pipeline'\n bkyml env \\\n --var FORCE_COLOR 1\n bkyml steps\n bkyml command \\\n --command 'yarn install' \\\n --command 'yarn test' \\\n --label ':karma: tests'\n bkyml wait\n bkyml plugin \\\n --plugin 'org/upload-coverage#1.0.0' dir=./coverage\n\nwill produce\n\n.. code:: yaml\n\n # Frontend tests pipeline\n env:\n FORCE_COLOR: '1'\n\n steps:\n\n - label: ':karma: tests'\n command:\n - yarn install\n - yarn test\n\n - wait\n\n - plugins:\n org/upload-coverage#1.0.0:\n dir: ./coverage\n\n\nThis allows you to dynamically generate pipelines:\n\n.. code:: shell\n\n #!/bin/env bash\n set -eu -o pipefail\n\n bkyml comment \"Pipeline for running all tests in test/*\"\n bkyml steps\n\n # add a new command step to run the tests in each test directory\n for test_dir in test/*/; do\n bkyml command \\\n --command \"run_tests ${test_dir}\" \\\n --label \"Run tests for '${test_dir}'\"\n done\n\n\nSub-Commands\n============\n\n\nsteps\n-----\n\nExample:\n\n.. code:: shell\n\n bkyml steps\n\nwill produce\n\n.. code:: yaml\n\n steps:\n\ncomment\n-------\n\nExample:\n\n.. code:: shell\n\n bkyml comment \\\n 'Hello world!' 'What a nice day :)'\n\nwill produce\n\n.. code:: yaml\n\n # Hello world!\n # What a nice day :)\n\n\nenv\n---\n\nExample:\n\n.. code:: shell\n\n bkyml env \\\n --var A B \\\n --var C D\n\nwill produce\n\n.. code:: yaml\n\n env:\n A: B\n C: D\n\ncommand\n-------\n\nExample:\n\n.. code:: shell\n\n bkyml command \\\n --command 'yarn install' \\\n --command 'yarn test' \\\n --env FORCE_COLOR 1 \\\n --branches master \\\n --label ':yarn: tests' \\\n --agents yarn true \\\n --artifact-paths 'logs/**/*' 'coverage/**/*' \\\n --parallelism 5 \\\n --concurrency 2 \\\n --concurrency-group my/group \\\n --timeout-in-minutes 60 \\\n --skip 'Some reason' \\\n --retry automatic \\\n --retry-automatic-tuple '*' 2 \\\n --retry-automatic-tuple 1 3 \\\n --plugin docker-compose#v1.3.2 build=app image-repository=index.docker.io/org/repo\n\nwill produce\n\n.. code:: yaml\n\n - label: ':yarn: tests'\n command:\n - yarn install\n - yarn test\n branches: master\n env:\n FORCE_COLOR: '1'\n agents:\n yarn: 'true'\n artifact_paths:\n - logs/**/*\n - coverage/**/*\n parallelism: 5\n concurrency: 2\n concurrency_group: my/group\n timeout_in_minutes: 60\n skip: Some reason\n retry:\n automatic:\n - exit_status: '*'\n limit: 2\n - exit_status: 1\n limit: 3\n plugins:\n docker-compose#v1.3.2:\n build: app\n image-repository: index.docker.io/org/repo\n\nThere is also:\n\n* :code:`--retry-automatic-limit`\n* :code:`--retry-automatic-exit-code`\n\nwhich can't be used in conjunction with --retry-automatic-tuple\n\nAnd:\n\n* :code:`--retry-manual-allowed` (allowing manual retries, default)\n* :code:`--no-retry-manual-allowed` (disallowing manual retries)\n* :code:`--retry-manual-reason REASON` (giving a reason why retries are forbidden)\n* :code:`--retry-manual-permit-on-passed` (allowing retries after the job has passed)\n* :code:`--no-retry-manual-permit-on-passed` (disallowing retries after the job has passed, default)\n\nExample:\n\n.. code:: shell\n\n bkyml command \\\n --command 'x' \\\n --retry manual \\\n --retry-manual-permit-on-passed \\\n --no-retry-manual-allowed \\\n --retry-manual-reason \"Just because\"\n\nwill result in\n\n.. code:: yaml\n\n - command: x\n retry:\n manual:\n allowed: false\n reason: Just because\n permit_on_passed: true\n\nplugin\n------\n\nExample:\n\n.. code:: shell\n\n bkyaml plugin \\\n --plugin 'org/repo#1.0.0' some=var other=var \\\n --plugin 'org/other_repo' more=var \\\n --name 'My name is working'\n\nwill result in\n\n.. code:: yaml\n\n - name: My name is working\n plugins:\n org/repo#1.0.0:\n some: var\n other: var\n org/other_repo:\n more: var\n\nwait\n----\n\nExample:\n\n.. code:: shell\n\n bkyaml wait \\\n --continue-on-failure\n\n\nwill result in\n\n.. code:: yaml\n\n - wait:\n continue_on_failure: true\n\ntrigger\n-------\n\nExample:\n\n.. code:: shell\n\n bkyaml trigger 'my-pipeline' \\\n --branches master '*-release' \\\n --build-message 'My build message' \\\n --build-commit c0ffee \\\n --build-branch green \\\n --build-env FORCE_COLOR 1 \\\n --build-meta-data release-name 1.0.0\n\nwill result in\n\n.. code:: yaml\n\n - trigger: my-pipeline\n branches: master *-release\n build:\n branch: green\n commit: c0ffee\n message: My build message\n env:\n FORCE_COLOR: '1'\n meta_data:\n release-name: 1.0.0\n\nblock\n-----\n\nExample:\n\n.. code:: shell\n\n bkyaml block ':rocket: Release'\n\nwill result in\n\n.. code:: yaml\n\n - block: ':rocket: Release'\n\nExample with a select field:\n\n.. code:: shell\n\n bkyaml block ':rocket: Release!' \\\n --field-select \\\n 'key' \\\n 'Field label' \\\n 'Some hint' \\\n true \\\n a \\\n 'a=A label' \\\n 'b=B label'\n\nwill result in:\n\n.. code:: yaml\n\n - block: ':rocket: Release!'\n fields:\n - text: Field label\n key: key\n hint: Some hint\n required: true\n default: a\n options:\n - label: A label\n value: a\n - label: B label\n value: b\n\nExample with a text field:\n\n.. code:: shell\n\n bkyaml block ':rocket: Release!' \\\n --field-text \\\n 'release-name' \\\n 'Release name' \\\n 'What should the next release name be?' \\\n true \\\n 'Some release name'\n\nwill result in:\n\n.. code:: yaml\n\n - block: ':rocket: Release!'\n fields:\n - text: Release name\n key: release-name\n hint: What should the next release name be?\n required: true\n default: Some release name\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/joscha/bkyml", "keywords": "", "license": "mit", "maintainer": "", "maintainer_email": "", "name": "bkyml", "package_url": "https://pypi.org/project/bkyml/", "platform": "any", "project_url": "https://pypi.org/project/bkyml/", "project_urls": { "Homepage": "http://github.com/joscha/bkyml" }, "release_url": "https://pypi.org/project/bkyml/1.4.3/", "requires_dist": null, "requires_python": "", "summary": "CLI tool to generate Buildkite pipeline YAML", "version": "1.4.3" }, "last_serial": 4615072, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "6881f60b117833d6e82f00d7bb120b69", "sha256": "bc803ea035031a9e1b1c663c980643d1026732f95c1ae5f2e57a77073b012c29" }, "downloads": -1, "filename": "bkyml-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6881f60b117833d6e82f00d7bb120b69", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8702, "upload_time": "2018-05-06T10:23:52", "url": "https://files.pythonhosted.org/packages/96/c3/2ba723725ca407e3c8b6bfaa6b8a9329843a1109c756a7a8ca893169bef2/bkyml-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a18d1b0b765e0a1dba8a6ecbc716c16e", "sha256": "221cd231c630b7c2972adf2121d391c3df2b6b70f4ae231bdda8b111a14088e7" }, "downloads": -1, "filename": "bkyml-1.0.1.tar.gz", "has_sig": false, "md5_digest": "a18d1b0b765e0a1dba8a6ecbc716c16e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19851, "upload_time": "2018-05-06T10:23:49", "url": "https://files.pythonhosted.org/packages/89/d2/88a25862231fb7c1f5ca272999c87c60d9ab2e2636c65076cb503ccd7933/bkyml-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4d0bca87b1b34016a031e159607f4c60", "sha256": "cd394d7b492c527bf20343b1d645936eabbbf0b44558ad3f399ed7982e33b69f" }, "downloads": -1, "filename": "bkyml-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4d0bca87b1b34016a031e159607f4c60", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9115, "upload_time": "2018-05-07T14:10:17", "url": "https://files.pythonhosted.org/packages/e9/2d/aa8fabe6643c7c4883a7cd7a90880873aefa0056651f0135468b990f97a0/bkyml-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2505cf3e0de5effb6b1fb79b62a3798f", "sha256": "18fb5aebf42bc697495484d0ff4317889b10a210ecd35627c0c5aad6d0e5ed56" }, "downloads": -1, "filename": "bkyml-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2505cf3e0de5effb6b1fb79b62a3798f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20533, "upload_time": "2018-05-07T14:10:14", "url": "https://files.pythonhosted.org/packages/29/49/e13b3c2873f7e5c2b93fab2c2756fa9a7af9d73325347c4c1bb417536549/bkyml-1.1.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "1da19fc03f5023ee0b26590edce7027d", "sha256": "3321947f2107095119ca30ce63f1592d697fd17d0d1964aafbf4b5dac6d24a7d" }, "downloads": -1, "filename": "bkyml-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1da19fc03f5023ee0b26590edce7027d", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9547, "upload_time": "2018-05-08T14:26:01", "url": "https://files.pythonhosted.org/packages/a0/ec/e47d63c45bc4ed73402eadd43257ce2c557ea3b7faf13854ac78ad7bc723/bkyml-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "441620a483b809f831096aafe1d6eecc", "sha256": "575514b19022b3f369e081d366968712c9a162b192a3cfb9729d75a741ebd4f7" }, "downloads": -1, "filename": "bkyml-1.2.1.tar.gz", "has_sig": false, "md5_digest": "441620a483b809f831096aafe1d6eecc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21236, "upload_time": "2018-05-08T14:25:58", "url": "https://files.pythonhosted.org/packages/3d/9e/4f1e8840e22ce646c1294578ce947f68a127a31e6bf8a72eb3a03975f88e/bkyml-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "027676be31f8c3f169267eca729c6a68", "sha256": "64b47126c26a42cc0ac53452a68b6c6f441bfea4c7c01e490df02d397c4d288c" }, "downloads": -1, "filename": "bkyml-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "027676be31f8c3f169267eca729c6a68", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9853, "upload_time": "2018-05-12T04:12:18", "url": "https://files.pythonhosted.org/packages/2b/bc/4c7276bb8c81644770abde3ae9d684293d78092cbae9f71114cd06423301/bkyml-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "40d61c034ff19bdd5840ca7e49da5f43", "sha256": "1141a9ffc2214db84e54f4253eb3eb05759dc5792ee2c5a47a8d97133738bea1" }, "downloads": -1, "filename": "bkyml-1.3.0.tar.gz", "has_sig": false, "md5_digest": "40d61c034ff19bdd5840ca7e49da5f43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21688, "upload_time": "2018-05-12T04:12:15", "url": "https://files.pythonhosted.org/packages/53/e5/5b5a70c1f290f20cbb218f27b6b07f00c8b0cf7d106e1e16c2e7af6b0db0/bkyml-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "d641f36c1f670c7e34334fb8532f1175", "sha256": "ca53ccbd82521ed6a268aa006150528f7afb5206af38c028f3882fa63f408ed4" }, "downloads": -1, "filename": "bkyml-1.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d641f36c1f670c7e34334fb8532f1175", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11845, "upload_time": "2018-05-12T14:44:07", "url": "https://files.pythonhosted.org/packages/90/0c/aa93e9a36bea5c6ff9c44c6daef57e9d29f2f75bee5efbdf1de4a44d56ad/bkyml-1.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "300d0fb88f4fa324a6ce08e3f6ced782", "sha256": "6263ba65623b654e72fa1390aa7877554633348a872da4feb8188104f66c93f0" }, "downloads": -1, "filename": "bkyml-1.4.0.tar.gz", "has_sig": false, "md5_digest": "300d0fb88f4fa324a6ce08e3f6ced782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25605, "upload_time": "2018-05-12T14:44:04", "url": "https://files.pythonhosted.org/packages/f9/f2/f0eb7e51f7d383ba21983edab8d12b5c9171801cbb2cde03a7251ab4bc02/bkyml-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "28bf83134e9fb45fd8f6a4cb973fa9e6", "sha256": "f530572830941fc6b5847fd8f60829ac68180c67061254bad9400409af6fa0a4" }, "downloads": -1, "filename": "bkyml-1.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "28bf83134e9fb45fd8f6a4cb973fa9e6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11839, "upload_time": "2018-05-14T07:29:27", "url": "https://files.pythonhosted.org/packages/c1/38/c54554cf3e9d249b72e050a29cf5a6182c7690b71551f8a1a08e7ef56ed5/bkyml-1.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19f62a07e3d7af51513c59beab3ff7a3", "sha256": "6b354ac906f0c0e433b2c82639ff3bfcb00c30ead882513eafa9c6a531e57f47" }, "downloads": -1, "filename": "bkyml-1.4.1.tar.gz", "has_sig": false, "md5_digest": "19f62a07e3d7af51513c59beab3ff7a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25299, "upload_time": "2018-05-14T07:29:25", "url": "https://files.pythonhosted.org/packages/7d/75/74d1b6343e8f30123672666a4b764c77885e452433a4ac9b1c2ee39d1aba/bkyml-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "dc7a6b7567c82153c29bd1e84061b2fc", "sha256": "99358a43782d05b182fd1d5bcc4895a5b8e79f5f2fa792b4d4ea6cea328b51e6" }, "downloads": -1, "filename": "bkyml-1.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dc7a6b7567c82153c29bd1e84061b2fc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11881, "upload_time": "2018-05-14T23:52:20", "url": "https://files.pythonhosted.org/packages/7e/7c/cd8767f092ab2eeabc42e021baadce7389c89064d6f0faf727ba24247a7b/bkyml-1.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "775d40c82c60e307af6cbec4727e86e2", "sha256": "d08cac371e045436e16f9a68e24d7da9421da89e1c6ffa21bd8e279d1a53db08" }, "downloads": -1, "filename": "bkyml-1.4.2.tar.gz", "has_sig": false, "md5_digest": "775d40c82c60e307af6cbec4727e86e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25682, "upload_time": "2018-05-14T23:52:17", "url": "https://files.pythonhosted.org/packages/c9/be/6c98dff62c8cf917db1d2e88888486f658ce281b6160a5a842dbda187c8d/bkyml-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "81b7c8ffe3c6f644998d795c518be583", "sha256": "8607225caad32d4bd7a3f152eeee08178117726814ee6ec9178197caa44c88c2" }, "downloads": -1, "filename": "bkyml-1.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "81b7c8ffe3c6f644998d795c518be583", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 10252, "upload_time": "2018-12-19T05:01:10", "url": "https://files.pythonhosted.org/packages/fd/08/dd7d0204798b3515c3c3e8909508c3c3b70de64595823d8e887f6078e9fb/bkyml-1.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04358c674c994185427afe3e9c1606c8", "sha256": "299f252756332464ce747155ff3d93ee3999c674db4b276827b78a53cae87706" }, "downloads": -1, "filename": "bkyml-1.4.3.tar.gz", "has_sig": false, "md5_digest": "04358c674c994185427afe3e9c1606c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25520, "upload_time": "2018-12-19T05:01:08", "url": "https://files.pythonhosted.org/packages/61/cc/3c5847ac8f9c5cb3c8954cb27f8f7f00d8c84a9d034e0d41d89e433b6bb7/bkyml-1.4.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "81b7c8ffe3c6f644998d795c518be583", "sha256": "8607225caad32d4bd7a3f152eeee08178117726814ee6ec9178197caa44c88c2" }, "downloads": -1, "filename": "bkyml-1.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "81b7c8ffe3c6f644998d795c518be583", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 10252, "upload_time": "2018-12-19T05:01:10", "url": "https://files.pythonhosted.org/packages/fd/08/dd7d0204798b3515c3c3e8909508c3c3b70de64595823d8e887f6078e9fb/bkyml-1.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "04358c674c994185427afe3e9c1606c8", "sha256": "299f252756332464ce747155ff3d93ee3999c674db4b276827b78a53cae87706" }, "downloads": -1, "filename": "bkyml-1.4.3.tar.gz", "has_sig": false, "md5_digest": "04358c674c994185427afe3e9c1606c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25520, "upload_time": "2018-12-19T05:01:08", "url": "https://files.pythonhosted.org/packages/61/cc/3c5847ac8f9c5cb3c8954cb27f8f7f00d8c84a9d034e0d41d89e433b6bb7/bkyml-1.4.3.tar.gz" } ] }