{ "info": { "author": "Ryan Finnie", "author_email": "ryan@finnie.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Quality Assurance", "Topic :: Software Development :: Testing" ], "description": "\n\nDSARI - DO SOMETHING AND RECORD IT\n\n\ndsari is a lightweight continuous integration (CI) system. It provides\nscheduling, concurrency management and trigger capabilities, and is easy\nto configure. Job scheduling is handled via dsari-daemon, while\ndsari-render may be used to format job run information as HTML.\n\n\nRequirements\n\ndsari requires Python 3.4 or later, and will run on Unix-based\nplatforms. It uses the following non-core packages:\n\n- croniter, for parsing cron-style schedule definitions\n- python-dateutil, for parsing iCalendar RRULE-style schedule\n definitions\n- Jinja2, for rendering HTML reports\n- psycopg2, for PostgreSQL database support\n- mysqlclient (mysqldb), for MySQL database support\n- pymongo, for MongoDB database support\n\nAll non-core packages are optional, with the following limitations:\n\n- If neither croniter nor python-dateutil are installed, dsari-daemon\n will run, but it will not process scheduled runs (i.e. manual\n triggers only).\n- Jinja2 is only required if you intend to use dsari-render.\n- psycopg2, mysqlclient or pymongo are only required if you intend to\n use dsari with an alternative database. By default, dsari uses a\n SQLite 3 database.\n\n\nInstallation\n\ndsari may be installed as any normal Python package:\n\n $ sudo python3 setup.py install\n\nWhen this is done, dsari will expect its configuration file --\ndsari.json -- in /usr/local/etc/dsari/, and will store its data in\n/usr/local/lib/dsari/.\n\nThese locations may be customized by passing -c argument to dsari-* to\nspecify the configuration directory, and the data_dir configuration\noption, respectively.\n\nWhen dsari is installed directly in /usr/ (i.e. as part of distribution\npackaging), the default configuration and data directories will be\n/etc/dsari/ and /var/lib/dsari/, respectively.\n\ndsari does not need to be installed at all, it can be run directly from\nthe repository directory. In this case, the default configuration and\ndata directories will be ~/.dsari/etc/ and ~/.dsari/var/, respectively.\n\nThe rest of these documents assume a locally-running setup, i.e.\n~/.dsari/.\n\n\nConfiguration\n\nA basic configuration for dsari.json looks as follows:\n\n {\n \"jobs\": {\n \"sample-job\": {\n \"command\": [\"/usr/bin/env\"],\n \"schedule\": \"H/5 * * * *\"\n }\n }\n }\n\nThis defines a job named \"sample-job\", which is run every 5 minutes.\nMany more configuration options are available in the doc/ directory.\n\n\nRunning\n\nOnce dsari is configured, run dsari-daemon. By default, dsari-daemon\nwill run in the foreground, and can be used with a supervisor (upstart,\nsystemd, supervisord, etc). If given -d, it will daemonize.\n\nWhen a job is scheduled to be run, it produces a \"run\". Runs are\nidentified by a UUID, the run output is stored in ~/.dsari/var/runs/,\nand data related to the run (start time, stop time, exit code, etc) is\nstored in a SQLite database at ~/.dsari/var/dsari.sqlite3.\n\nWhen a run is executed, several environment variables are passed to the\nprogram to be run:\n\n JOB_NAME=sample-job\n RUN_ID=fa0490b8-7a8e-4f6b-b73c-160199a9ff75\n PREVIOUS_RUN_ID=e5bd61b3-27f3-46ca-8169-372433056fc2\n PREVIOUS_SCHEDULE_TIME=1437004689.27\n PREVIOUS_START_TIME=1437004689.65\n PREVIOUS_STOP_TIME=1437004689.71\n PREVIOUS_EXIT_CODE=0\n\nPREVIOUS_* variables are not set if there is no previous run. In\naddition, several extra environment variables are present, if the job's\njenkins_environment option is set, to aid with migrations from Jenkins\nsetups:\n\n BUILD_NUMBER=fa0490b8-7a8e-4f6b-b73c-160199a9ff75\n BUILD_ID=fa0490b8-7a8e-4f6b-b73c-160199a9ff75\n BUILD_URL=file:///home/user/.dsari/var/runs/sample-job/fa0490b8-7a8e-4f6b-b73c-160199a9ff75/\n NODE_NAME=master\n BUILD_TAG=dsari-sample-job-fa0490b8-7a8e-4f6b-b73c-160199a9ff75\n JENKINS_URL=file:///home/user/.dsari/var/\n EXECUTOR_NUMBER=0\n WORKSPACE=/home/user/.dsari/var/runs/sample-job/fa0490b8-7a8e-4f6b-b73c-160199a9ff75\n\n\nReports\n\nTo render HTML reports, run dsari-render occasionally. This will produce\na series of HTML files in ~/.dsari/var/html/. You may then serve these\nfiles, rsync them to a remote server, etc.\n\nThe dsari-info command may be used to retrieve information about jobs\nand runs.\n\nThe dsari-prometheus-exporter command may be used to start a metrics\ndaemon suitable for ingestion into Prometheus.\n\n\nLicense\n\ndsari - Do Something and Record It\n\nCopyright (C) 2015-2016 Ryan Finnie\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/rfinnie/dsari/releases", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rfinnie/dsari", "keywords": "", "license": "GPLv2+", "maintainer": "", "maintainer_email": "", "name": "dsari", "package_url": "https://pypi.org/project/dsari/", "platform": "Unix", "project_url": "https://pypi.org/project/dsari/", "project_urls": { "Download": "https://github.com/rfinnie/dsari/releases", "Homepage": "https://github.com/rfinnie/dsari" }, "release_url": "https://pypi.org/project/dsari/2.0/", "requires_dist": null, "requires_python": "", "summary": "Do Something and Record It", "version": "2.0" }, "last_serial": 3801218, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "2572f1ec31170e39b0fbe8e9f4cb07bb", "sha256": "1a2b5731a0feac445d5f96ddf79f6438baeb14ecc4397be9f53532619746b911" }, "downloads": -1, "filename": "dsari-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2572f1ec31170e39b0fbe8e9f4cb07bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24654, "upload_time": "2015-08-04T00:37:56", "url": "https://files.pythonhosted.org/packages/f5/c2/79ebcb5bceb6d01093f964ec15802f2e8f4fd62ed43a345344b60b72c4d9/dsari-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "f2d7b7135e2d38010cab46549e7400e4", "sha256": "2518b12b80b51979b5ad068005eaa5867db170bf37cda9a0658c280d376bde5f" }, "downloads": -1, "filename": "dsari-1.2.0.tar.gz", "has_sig": false, "md5_digest": "f2d7b7135e2d38010cab46549e7400e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27283, "upload_time": "2015-08-04T03:24:22", "url": "https://files.pythonhosted.org/packages/7c/94/6a6b148c519ed07e5e66dfce91da2018fa80315ddc3cc411488556e64fc8/dsari-1.2.0.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "7e2761becf0ab1be78de57859eb1ce83", "sha256": "592e33acfbd60c66887a6e63e12653a7c256730ef6a89125fbfaae2855d789fb" }, "downloads": -1, "filename": "dsari-2.0.tar.gz", "has_sig": false, "md5_digest": "7e2761becf0ab1be78de57859eb1ce83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45084, "upload_time": "2018-04-24T04:13:31", "url": "https://files.pythonhosted.org/packages/4e/2e/ee34cae49801d2fa8be7bd8e519784943408abaf082850bf0bf949b49dfd/dsari-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7e2761becf0ab1be78de57859eb1ce83", "sha256": "592e33acfbd60c66887a6e63e12653a7c256730ef6a89125fbfaae2855d789fb" }, "downloads": -1, "filename": "dsari-2.0.tar.gz", "has_sig": false, "md5_digest": "7e2761becf0ab1be78de57859eb1ce83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45084, "upload_time": "2018-04-24T04:13:31", "url": "https://files.pythonhosted.org/packages/4e/2e/ee34cae49801d2fa8be7bd8e519784943408abaf082850bf0bf949b49dfd/dsari-2.0.tar.gz" } ] }