gros-deployer


Namegros-deployer JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryGrip on Software deployment interface
upload_time2024-07-16 14:46:51
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache 2.0
keywords deployment-application quality-gate
VCS
bugtrack_url
requirements gros-gatherer gros-server bigboat PyYAML sshdeploy
Travis-CI No Travis.
coveralls test coverage
            GROS deployment interface
=========================

[![PyPI](https://img.shields.io/pypi/v/gros-deployer.svg)](https://pypi.python.org/pypi/gros-deployer)
[![Build 
status](https://github.com/grip-on-software/deployer/actions/workflows/deployer-tests.yml/badge.svg)](https://github.com/grip-on-software/deployer/actions/workflows/deployer-tests.yml)
[![Coverage 
Status](https://coveralls.io/repos/github/grip-on-software/deployer/badge.svg?branch=master)](https://coveralls.io/github/grip-on-software/deployer?branch=master)
[![Quality Gate
Status](https://sonarcloud.io/api/project_badges/measure?project=grip-on-software_deployer&metric=alert_status)](https://sonarcloud.io/project/overview?id=grip-on-software_deployer)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12571035.svg)](https://doi.org/10.5281/zenodo.12571035)

This repository contains a Web application that provides a management interface 
for application deployments using a quality gate.

## Installation

The latest version of the GROS deployment interface and its dependencies can be 
installed using `pip install gros-deployer`.

Another option is to build the module from this repository, which allows using 
the most recent development code. Run `make setup` to install the dependencies. 
The deployment interface itself may then be installed with `make install`, 
which places the package in your current environment. We recommend using 
a virtual environment during development.

## Running

Simply start the application using `gros-deployer`. Use command-line arguments 
(displayed with `gros-deployer --help`) and/or a data-gathering `settings.cfg` 
file (specifically the sections `ldap`, `deploy` and `jenkins` influence this 
application's behavior - see the [gros-gatherer documentation on 
configuration](https://gros.liacs.nl/data-gathering/configuration.html) for 
details).

You can also configure the application as a `systemd` service such that it can 
run headless under a separate user, using a `virtualenv` setup shared with the 
[controller](https://gros.liacs.nl/data-gathering/api.html#controller-api) of 
the agent-based data gathering setup. See the `gros-deployer.service` file in 
this repository for a possible setup (using a `deployer` user and group) and 
[installation](https://gros.liacs.nl/data-gathering/installation.html#controller) 
of the controller for some pointers in this advanced setup.

For the option to restart a `systemd` service when a deployment is updated, the 
user running the application must have `sudo` rights to execute at least the 
`systemctl` binary.

## Development and testing

To run tests, first install the test dependencies with `make setup_test` which 
also installs all dependencies for the server framework. Then `make coverage` 
provides test results in the output and in XML versions compatible with, e.g., 
JUnit and SonarQube available in the `test-reports/` directory. If you do not 
need XML outputs, then run `make test` to just report on test successes and 
failures or `make cover` to also have the terminal report on hits and misses in 
statements and branches.

[GitHub Actions](https://github.com/grip-on-software/deployer/actions) 
is used to run the unit tests and report on coverage on commits and pull 
requests. This includes quality gate scans tracked by 
[SonarCloud](https://sonarcloud.io/project/overview?id=grip-on-software_deployer) 
and [Coveralls](https://coveralls.io/github/grip-on-software/deployer) for 
coverage history.

The Python module conforms to code style and typing standards which can be 
checked using Pylint with `make pylint` and mypy with `make mypy`, after 
installing the pylint and mypy dependencies using `make setup_analysis`; typing 
reports are XML formats compatible with JUnit and SonarQube placed in the 
`mypy-report/` directory. To also receive the HTML report, use `make mypy_html` 
instead.

We publish releases to [PyPI](https://pypi.org/project/gros-deployer/) using 
`make setup_release` to install dependencies and `make release` which performs 
multiple checks: unit tests, typing, lint and version number consistency. The 
release files are also published on 
[GitHub](https://github.com/grip-on-software/deployer/releases) and from there 
are archived on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.12571034). 
Noteworthy changes to the module are added to the [changelog](CHANGELOG.md).

## License

GROS deployment interface is licensed under the Apache 2.0 License.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gros-deployer",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "deployment-application, quality-gate",
    "author": null,
    "author_email": "Leon Helwerda <l.s.helwerda@liacs.leidenuniv.nl>",
    "download_url": "https://files.pythonhosted.org/packages/3a/84/35cfdcf8122f4a44664b10a1b693a73bcf8cbedba4dbd7101e675e2ba7e5/gros_deployer-1.0.0.tar.gz",
    "platform": null,
    "description": "GROS deployment interface\n=========================\n\n[![PyPI](https://img.shields.io/pypi/v/gros-deployer.svg)](https://pypi.python.org/pypi/gros-deployer)\n[![Build \nstatus](https://github.com/grip-on-software/deployer/actions/workflows/deployer-tests.yml/badge.svg)](https://github.com/grip-on-software/deployer/actions/workflows/deployer-tests.yml)\n[![Coverage \nStatus](https://coveralls.io/repos/github/grip-on-software/deployer/badge.svg?branch=master)](https://coveralls.io/github/grip-on-software/deployer?branch=master)\n[![Quality Gate\nStatus](https://sonarcloud.io/api/project_badges/measure?project=grip-on-software_deployer&metric=alert_status)](https://sonarcloud.io/project/overview?id=grip-on-software_deployer)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12571035.svg)](https://doi.org/10.5281/zenodo.12571035)\n\nThis repository contains a Web application that provides a management interface \nfor application deployments using a quality gate.\n\n## Installation\n\nThe latest version of the GROS deployment interface and its dependencies can be \ninstalled using `pip install gros-deployer`.\n\nAnother option is to build the module from this repository, which allows using \nthe most recent development code. Run `make setup` to install the dependencies. \nThe deployment interface itself may then be installed with `make install`, \nwhich places the package in your current environment. We recommend using \na virtual environment during development.\n\n## Running\n\nSimply start the application using `gros-deployer`. Use command-line arguments \n(displayed with `gros-deployer --help`) and/or a data-gathering `settings.cfg` \nfile (specifically the sections `ldap`, `deploy` and `jenkins` influence this \napplication's behavior - see the [gros-gatherer documentation on \nconfiguration](https://gros.liacs.nl/data-gathering/configuration.html) for \ndetails).\n\nYou can also configure the application as a `systemd` service such that it can \nrun headless under a separate user, using a `virtualenv` setup shared with the \n[controller](https://gros.liacs.nl/data-gathering/api.html#controller-api) of \nthe agent-based data gathering setup. See the `gros-deployer.service` file in \nthis repository for a possible setup (using a `deployer` user and group) and \n[installation](https://gros.liacs.nl/data-gathering/installation.html#controller) \nof the controller for some pointers in this advanced setup.\n\nFor the option to restart a `systemd` service when a deployment is updated, the \nuser running the application must have `sudo` rights to execute at least the \n`systemctl` binary.\n\n## Development and testing\n\nTo run tests, first install the test dependencies with `make setup_test` which \nalso installs all dependencies for the server framework. Then `make coverage` \nprovides test results in the output and in XML versions compatible with, e.g., \nJUnit and SonarQube available in the `test-reports/` directory. If you do not \nneed XML outputs, then run `make test` to just report on test successes and \nfailures or `make cover` to also have the terminal report on hits and misses in \nstatements and branches.\n\n[GitHub Actions](https://github.com/grip-on-software/deployer/actions) \nis used to run the unit tests and report on coverage on commits and pull \nrequests. This includes quality gate scans tracked by \n[SonarCloud](https://sonarcloud.io/project/overview?id=grip-on-software_deployer) \nand [Coveralls](https://coveralls.io/github/grip-on-software/deployer) for \ncoverage history.\n\nThe Python module conforms to code style and typing standards which can be \nchecked using Pylint with `make pylint` and mypy with `make mypy`, after \ninstalling the pylint and mypy dependencies using `make setup_analysis`; typing \nreports are XML formats compatible with JUnit and SonarQube placed in the \n`mypy-report/` directory. To also receive the HTML report, use `make mypy_html` \ninstead.\n\nWe publish releases to [PyPI](https://pypi.org/project/gros-deployer/) using \n`make setup_release` to install dependencies and `make release` which performs \nmultiple checks: unit tests, typing, lint and version number consistency. The \nrelease files are also published on \n[GitHub](https://github.com/grip-on-software/deployer/releases) and from there \nare archived on [Zenodo](https://zenodo.org/doi/10.5281/zenodo.12571034). \nNoteworthy changes to the module are added to the [changelog](CHANGELOG.md).\n\n## License\n\nGROS deployment interface is licensed under the Apache 2.0 License.\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Grip on Software deployment interface",
    "version": "1.0.0",
    "project_urls": {
        "CI: Coveralls": "https://coveralls.io/github/grip-on-software/deployer?branch=master",
        "CI: GitHub Actions": "https://github.com/grip-on-software/deployer/actions",
        "CI: SonarCloud": "https://sonarcloud.io/project/overview?id=grip-on-software_deployer",
        "Homepage": "https://gros.liacs.nl",
        "Issues": "https://github.com/grip-on-software/deployer/issues",
        "Pull Requests": "https://github.com/grip-on-software/deployer/pulls",
        "PyPI": "https://pypi.python.org/pypi/gros-deployer",
        "Source Code": "https://github.com/grip-on-software/deployer"
    },
    "split_keywords": [
        "deployment-application",
        " quality-gate"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "313ed84408e119d251ce4b7629eee7adc441b1928d4652e9a3550e4f40139eeb",
                "md5": "343bd516f7e2201b1f9de51a25f64802",
                "sha256": "cf6583af99ee34bc4a07c0ad1eef2ffe5c7e75f3a8eb5bbc813eeade53eb845b"
            },
            "downloads": -1,
            "filename": "gros_deployer-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "343bd516f7e2201b1f9de51a25f64802",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 23141,
            "upload_time": "2024-07-16T14:46:49",
            "upload_time_iso_8601": "2024-07-16T14:46:49.277099Z",
            "url": "https://files.pythonhosted.org/packages/31/3e/d84408e119d251ce4b7629eee7adc441b1928d4652e9a3550e4f40139eeb/gros_deployer-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a8435cfdcf8122f4a44664b10a1b693a73bcf8cbedba4dbd7101e675e2ba7e5",
                "md5": "29d150d0d5667bd2cd4f18011bfa60f9",
                "sha256": "f12a8c2cc0e77165d3ddd86895e05b4cd46fd22bde5e3358f0d02cc83075ab41"
            },
            "downloads": -1,
            "filename": "gros_deployer-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "29d150d0d5667bd2cd4f18011bfa60f9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 21138,
            "upload_time": "2024-07-16T14:46:51",
            "upload_time_iso_8601": "2024-07-16T14:46:51.473171Z",
            "url": "https://files.pythonhosted.org/packages/3a/84/35cfdcf8122f4a44664b10a1b693a73bcf8cbedba4dbd7101e675e2ba7e5/gros_deployer-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-16 14:46:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "grip-on-software",
    "github_project": "deployer",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "gros-gatherer",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "gros-server",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "bigboat",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "6.0.1"
                ]
            ]
        },
        {
            "name": "sshdeploy",
            "specs": [
                [
                    "==",
                    "1.1.4"
                ]
            ]
        }
    ],
    "lcname": "gros-deployer"
}
        
Elapsed time: 0.27932s