{
"info": {
"author": "Florian Schulze",
"author_email": "florian.schulze@gmx.net",
"bugtrack_url": null,
"classifiers": [
"Environment :: Web Environment",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.4"
],
"description": "devpi-jenkins: Jenkins build trigger for devpi-server\n=====================================================\n\nFor use with devpi-server >= 2.2.0.\n\nInstallation\n------------\n\n``devpi-jenkins`` needs to be installed alongside ``devpi-server``.\n\nYou can install it with::\n\n pip install devpi-jenkins\n\nFor ``devpi-server`` there is no configuration needed, as it will automatically discover the plugin through calling hooks using the setuptools entry points mechanism.\n\nDetails about configuration below.\n\nConfiguration\n-------------\n\ndevpi-jenkins can trigger Jenkins to test uploaded packages using tox_.\nThis needs configuration on two sides:\n\n- devpi: configuring an index to send POST requests to Jenkins upon upload\n\n- Jenkins: adding one or more jobs which can get triggered by devpi-jenkins.\n\nConfiguring a devpi index to trigger Jenkins\n++++++++++++++++++++++++++++++++++++++++++++\n\nHere is a example command, using a ``/testuser/dev`` index\nand a Jenkins server at http://localhost:8080::\n\n # needs one Jenkins job for each name of uploaded packages\n devpi index /testuser/dev uploadtrigger_jenkins=http://localhost:8080/job/{pkgname}/build\n\nAny package which gets uploaded to ``/testuser/dev`` will now trigger\na POST request to the specified url. The ``{pkgname}`` and\n``{pkgversion}`` strings will be substituted with the name of the\nuploaded package. You don't need to specify such substitutions,\nhowever, if you rather want to have one generic Jenkins job which\nexecutes all tests for all your uploads::\n\n # one generic job for all uploaded packages\n devpi index /testuser/dev uploadtrigger_jenkins=http://localhost:8080/job/multijob/build\n\nThis requires a single ``multijob`` on the Jenkins side whereas the prior\nconfiguration would require a job for each package name that you possibly\nupload.\n\nNote that uploading a package will succeed independently if a build job could\nbe submitted successfully to Jenkins.\n\nConfiguring Jenkins job(s)\n++++++++++++++++++++++++++\n\nOn the Jenkins side, you need to configure one or more jobs which can\nbe triggered by devpi-jenkins. Each job is configured in the same way:\n\n- go to main Jenkins screen\n\n- hit \"New Job\" and enter a name (\"multijob\" if you want to configure\n a generic job), then select \"freey style software project\", hit OK.\n\n.. image:: jenkins1.png\n :align: center\n\n- enable \"This build is parametrized\" and add a \"File Parameter\",\n setting the file location to ``jobscript.py``.\n\n.. image:: jenkins2.png\n :align: center\n\n- add a buildstep \"Execute Python script\" (you need to have the Python\n plugin installed and enabled in Jenkins) and enter\n ``execfile(\"jobscript.py\")``.\n\n.. image:: jenkins3.png\n :align: center\n\n- hit \"Save\" for the new build job.\n\nYou can now ``devpi upload`` a package to an index and see Jenkins starting\nafter the upload successfully returns.\n\nBehind the scenes\n+++++++++++++++++\n\nOnce you triggered a job from devpi, you can checkout the ``jobscript.py``\nin the Jenkins workspace to see what was injected. The injected\nscript roughly follows these steps:\n\n- retrieves a stable virtualenv release through the devpi root/pypi\n index (i.e. use its caching ability)\n\n- unpack the virtualenv tar ball and run the contained \"virtualenv.py\"\n script to create a ``_devpi`` environment\n\n- install/upgrade ``devpi-client`` into that environment\n\n- ``devpi use`` the index which we were triggered from\n\n- ``devpi test PKG`` where PKG is the package name that we uploaded.\n\nUploading Sphinx docs\n---------------------\n\nIf you have `Sphinx-based documentation `_ you can\nupload the rendered HTML documentation to your devpi server with the following\ncommand::\n\n devpi upload --with-docs\n\nThis will build and upload Sphinx documentation by configuring and running\nthis command::\n\n setup.py build_sphinx -E --build-dir $BUILD_DIR \\\n upload_docs --upload-dir $BUILD_DIR/html\n\nIf you have distutils configured to use a devpi index you can upload\ndocumentation to that index simply by executing::\n\n python setup.py upload_docs\n\nOnce uploaded the documentation will be linked to from the index overview page.\nDocumentation URLs have the following form::\n\n http://$DEVPI_URL/$USER/$INDEX/$PACKAGE/$VERSION/+doc/index.html\n\nThe ``devpi upload --with-docs`` command may fail with the following error::\n\n error: invalid command 'build_sphinx'\n\nThis probably means you're using an old version of setuptools that doesn't\nsupport the `build_sphinx` command used by devpi, so you need to update\nsetuptools::\n\n pip install -U setuptools\n\nIf the ``devpi upload --with-docs`` command still fails with the same error\nmessage, maybe you forgot to install Sphinx? In that case::\n\n pip install sphinx\n\nBulk uploading release files\n----------------------------\n\nIf you have a directory with existing package files::\n\n devpi upload --from-dir PATH/TO/DIR\n\nwill recursively collect all archives files, register\nand upload them to our local ``testuser/dev`` pypi index.\n\n.. _`configure pypirc`:\n\nUsing plain ``setup.py`` for uploading\n--------------------------------------\n\nIn order for ``setup.py`` to register releases and upload\nrelease files we need to configure our index server in\nthe ``$HOME/.pypirc`` file::\n\n # content of $HOME/.pypirc\n [distutils]\n index-servers = ... # any other index servers you have\n dev\n\n [dev]\n repository: http://localhost:3141/testuser/dev/\n username: testuser\n password: \n\nNow let's go to one of your ``setup.py`` based projects and issue::\n\n python setup.py sdist upload -r dev\n\nThis will upload your ``sdist`` package to the ``testuser/dev`` index,\nconfigured in the ``.pypirc`` file.\n\nIf you now use ``testuser/dev`` for installation like this::\n\n pip install -i http://localhost:3141/testuser/dev/+simple/ PKGNAME\n\nYou will install your package including any pypi-dependencies\nit might need, because the ``testuser/dev`` index inherits all\npackages from the pypi-mirroring ``root/pypi`` index.\n\n.. note::\n\n If working with multiple indices, it is usually more\n convenient to use `devpi upload`_.\n\n.. _tox: http://tox.testrun.org\n.. _`devpi upload`: http://doc.devpi.net/latest/quickstart-releaseprocess.html#devpi-upload-uploading-one-or-more-packages\n\n\nChangelog\n=========\n\n2.0.0 - 2016-04-25\n------------------\n\n- Drop support for Python 2.6\n [fschulze]\n\n- fixes for devpi-server 3.0.0, older versions aren't supported anymore\n [fschulze]\n\n\n1.0.0 - 2015-05-13\n------------------\n\n- include version in testspec for ``devpi test`` command\n [fschulze]\n\n- separated into plugin from devpi-server\n [fschulze (Florian Schulze)]",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/devpi/devpi-jenkins",
"keywords": "",
"license": "MIT",
"maintainer": null,
"maintainer_email": null,
"name": "devpi-jenkins",
"package_url": "https://pypi.org/project/devpi-jenkins/",
"platform": null,
"project_url": "https://pypi.org/project/devpi-jenkins/",
"project_urls": {
"Homepage": "https://github.com/devpi/devpi-jenkins"
},
"release_url": "https://pypi.org/project/devpi-jenkins/2.0.0/",
"requires_dist": null,
"requires_python": null,
"summary": "devpi-jenkins: Jenkins build trigger for devpi-server",
"version": "2.0.0"
},
"last_serial": 2082530,
"releases": {
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "0dacb763784cad238cfccf3d0c6743dc",
"sha256": "3c362444fb875f252e6c38ecb27a492bdfb03bfb322153170c9401b2439132cf"
},
"downloads": -1,
"filename": "devpi-jenkins-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "0dacb763784cad238cfccf3d0c6743dc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 111564,
"upload_time": "2015-05-13T14:14:37",
"url": "https://files.pythonhosted.org/packages/44/f5/5ef4ee2b2696d098b9d8fe798eeaa8e39490543c43494967d7bb9f7ceefa/devpi-jenkins-1.0.0.tar.gz"
},
{
"comment_text": "",
"digests": {
"md5": "b571dbda40e01dcd8a8e89d42f6facf6",
"sha256": "d8d84aef86be04851252cc171a81a128d470d898a23c81561e2e010f48d06eeb"
},
"downloads": -1,
"filename": "devpi-jenkins-1.0.0.zip",
"has_sig": false,
"md5_digest": "b571dbda40e01dcd8a8e89d42f6facf6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 116040,
"upload_time": "2015-05-13T14:14:35",
"url": "https://files.pythonhosted.org/packages/ed/57/58f21877fb384132a8a6818476ba93095995167fc3f7111a84da901f4696/devpi-jenkins-1.0.0.zip"
}
],
"1.0.1.dev.0": [],
"2.0.0": [
{
"comment_text": "",
"digests": {
"md5": "6a30df31c25bd8c37cdd025edf49229f",
"sha256": "8a7e43fe828c98723243767c5edf23ff63d73626dff505764401fb67e90a0c3a"
},
"downloads": -1,
"filename": "devpi-jenkins-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "6a30df31c25bd8c37cdd025edf49229f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9774,
"upload_time": "2016-04-25T10:43:41",
"url": "https://files.pythonhosted.org/packages/8a/8f/2d8ea35c5e86668bacd131201ec0667cca5df11793e84db3475323dabe77/devpi-jenkins-2.0.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "6a30df31c25bd8c37cdd025edf49229f",
"sha256": "8a7e43fe828c98723243767c5edf23ff63d73626dff505764401fb67e90a0c3a"
},
"downloads": -1,
"filename": "devpi-jenkins-2.0.0.tar.gz",
"has_sig": false,
"md5_digest": "6a30df31c25bd8c37cdd025edf49229f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9774,
"upload_time": "2016-04-25T10:43:41",
"url": "https://files.pythonhosted.org/packages/8a/8f/2d8ea35c5e86668bacd131201ec0667cca5df11793e84db3475323dabe77/devpi-jenkins-2.0.0.tar.gz"
}
]
}