Buildbot Pipeline
=================
Buildbot Pipeline is a missing piece to make Buildbot (an excellent CI
framework) usable for mere mortals.
* Define steps in VCS using YAML.
* Scripted includes allow to use favorite language to define dynamic steps and
bring more flexibility than build matrix.
* Trigger filters. Automatic trigger if step file is changed.
* Parallel steps.
* Ability to skip already passed jobs for same commit (can be helpful to rerun flaky tests).
* Fixed concurrency. You can run multiple builds of the same job on single
worker.
* Native support for JUnit (XUnit) XML reports.
* Artifacts storage on leader node.
* Artifacts and test reports are attached to step. You can easily find cause of
failure in UI.
* Gerrit integration:
* Buildbot pipeline tracks all builds started from the same commit and sets
`Verify` label based on all succeeded jobs.
* You can rebuild one of failed jobs from buildset and `Verify` would
be correctly updated.
* Do not trigger build for WIP patches.
Example:
.. code-block:: yaml
# buildbot/unit-tests.yaml
filter:
files:
- app/*
- unit-tests/*
steps:
- name: prepare
shell-fail: pip install -r requirements.txt
- name: test
shell: python -m pytest --junitxml=junit.xml --cov-report html:htmlcov unit-tests
junit: junit.xml
upload:
label: coverage report
src: htmlcov
link: htmlcov/
Environment variables
---------------------
* `BUILD_ID`: id of a root job, it's uniq accross a build job
* `WORKSPACE`: path to a shared storage for a buid job. Can be used for caches,
node_modules, virtual environments and so on.
* `BUILD_STATUS`: status of a current build so far. `Codes <https://docs.buildbot.net/latest/developer/results.html>`_.
STDOUT markup
-------------
Buildbot pipeline supports special stdout markup to enrich builds with custom
information.
* `__PIPELINE_LINK__ name url`: adds a user provided link to a current step.
* `__PIPELINE_PROP__ name value`: adds a user provided property to a current build.
You can access property value in following steps.
* `__PIPELINE_SESSION_PROP__ name value`: adds a user provided property to
a current build and future rebuilds.
For example:
.. code-block:: yaml
steps:
- name: test
shell: |
build_id=$(build-package.sh)
echo __PIPELINE_LINK__ artifacts http://build.corp.com/artifacts/$build_id
Raw data
{
"_id": null,
"home_page": "https://github.com/baverman/buildbot_pipeline/",
"name": "buildbot-pipeline",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Anton Bobrov",
"author_email": "baverman@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/e6/d6/9d48493adb89c9b92dbc121c931b9988f47612a56ec5680a1a6192448d1f/buildbot_pipeline-0.11.3.tar.gz",
"platform": "any",
"description": "Buildbot Pipeline\n=================\n\nBuildbot Pipeline is a missing piece to make Buildbot (an excellent CI\nframework) usable for mere mortals.\n\n* Define steps in VCS using YAML.\n* Scripted includes allow to use favorite language to define dynamic steps and\n bring more flexibility than build matrix.\n* Trigger filters. Automatic trigger if step file is changed.\n* Parallel steps.\n* Ability to skip already passed jobs for same commit (can be helpful to rerun flaky tests).\n* Fixed concurrency. You can run multiple builds of the same job on single\n worker.\n* Native support for JUnit (XUnit) XML reports.\n* Artifacts storage on leader node.\n* Artifacts and test reports are attached to step. You can easily find cause of\n failure in UI.\n* Gerrit integration:\n\n * Buildbot pipeline tracks all builds started from the same commit and sets\n `Verify` label based on all succeeded jobs.\n * You can rebuild one of failed jobs from buildset and `Verify` would\n be correctly updated.\n * Do not trigger build for WIP patches.\n\n\nExample:\n\n.. code-block:: yaml\n\n # buildbot/unit-tests.yaml\n\n filter:\n files:\n - app/*\n - unit-tests/*\n\n steps:\n - name: prepare\n shell-fail: pip install -r requirements.txt\n\n - name: test\n shell: python -m pytest --junitxml=junit.xml --cov-report html:htmlcov unit-tests\n junit: junit.xml\n upload:\n label: coverage report\n src: htmlcov\n link: htmlcov/\n\n\nEnvironment variables\n---------------------\n\n* `BUILD_ID`: id of a root job, it's uniq accross a build job\n* `WORKSPACE`: path to a shared storage for a buid job. Can be used for caches,\n node_modules, virtual environments and so on.\n* `BUILD_STATUS`: status of a current build so far. `Codes <https://docs.buildbot.net/latest/developer/results.html>`_.\n\nSTDOUT markup\n-------------\n\nBuildbot pipeline supports special stdout markup to enrich builds with custom\ninformation.\n\n* `__PIPELINE_LINK__ name url`: adds a user provided link to a current step.\n* `__PIPELINE_PROP__ name value`: adds a user provided property to a current build.\n You can access property value in following steps.\n* `__PIPELINE_SESSION_PROP__ name value`: adds a user provided property to\n a current build and future rebuilds.\n\nFor example:\n\n.. code-block:: yaml\n\n steps:\n - name: test\n shell: |\n build_id=$(build-package.sh)\n echo __PIPELINE_LINK__ artifacts http://build.corp.com/artifacts/$build_id\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Pipeline syntax for buildbot",
"version": "0.11.3",
"project_urls": {
"Homepage": "https://github.com/baverman/buildbot_pipeline/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e6d69d48493adb89c9b92dbc121c931b9988f47612a56ec5680a1a6192448d1f",
"md5": "60e783de92b7ff500e3cd086a3739d90",
"sha256": "ac38ee8197a384c4943f163693cce2cbfb3bab336e53ee8108b5eca43a063d5a"
},
"downloads": -1,
"filename": "buildbot_pipeline-0.11.3.tar.gz",
"has_sig": false,
"md5_digest": "60e783de92b7ff500e3cd086a3739d90",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 66387,
"upload_time": "2024-05-09T09:54:46",
"upload_time_iso_8601": "2024-05-09T09:54:46.948107Z",
"url": "https://files.pythonhosted.org/packages/e6/d6/9d48493adb89c9b92dbc121c931b9988f47612a56ec5680a1a6192448d1f/buildbot_pipeline-0.11.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-09 09:54:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "baverman",
"github_project": "buildbot_pipeline",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "buildbot-pipeline"
}