runway


Namerunway JSON
Version 2.6.14 PyPI version JSON
download
home_pagehttps://github.com/onicagroup/runway
SummarySimplify infrastructure/app testing/deployment
upload_time2024-03-11 21:38:11
maintainerKyle Finley
docs_urlNone
authorOnica Group LLC
requires_python>=3.9,<3.13
licenseApache-2.0
keywords cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Runway

[![CI/CD](https://github.com/onicagroup/runway/workflows/CI/CD/badge.svg?branch=master)](https://github.com/onicagroup/runway/actions?query=workflow%3ACI%2FCD)
[![codecov](https://codecov.io/gh/onicagroup/runway/branch/master/graph/badge.svg?token=Ku28I0RY80)](https://codecov.io/gh/onicagroup/runway)
[![PyPi](https://img.shields.io/pypi/v/runway?style=flat)](https://pypi.org/project/runway/)
[![npm](https://img.shields.io/npm/v/@onica/runway?style=flat)](https://www.npmjs.com/package/@onica/runway)
[![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)

![runway-example.gif](https://raw.githubusercontent.com/onicagroup/runway/master/docs/source/images/runway-example.gif)

Runway is a lightweight integration app designed to ease management of infrastructure tools.

Its main goals are to encourage GitOps best-practices, avoid convoluted Makefiles/scripts (enabling identical deployments from a workstation or CI job), and enable developers/admins to use the best tool for any given job.


## Features

* Centralized environment-specific configuration
* Automatic environment identification from git branches
* Automatic linting/verification
* Support of IAM roles to assume for each deployment
* Terraform backend/workspace config management w/per-environment tfvars
* Automatic kubectl/terraform version management per-environment

### Supported Deployment Tools

* AWS CDK
* Kubectl
* Serverless Framework
* CFNgin (CloudFormation)
* Static websites (build & deploy to S3+CloudFront)
* Terraform


## Example

A typical Runway configuration is unobtrusive -- it just lists the deployment order and locations (regions).

```yml
deployments:
  - modules:
      - resources.tf  # terraform resources
      - backend.sls  # serverless lambda functions
      - frontend  # static web site
    environments:  # Environments
      dev: "123456789012"  # AWS development Account ID
      prod: "234567890123"  # AWS production Account ID
    regions:
      - us-east-1
```

The example above contains enough information for Runway to deploy all resources, lambda functions and a static website backed by S3 and Cloudfront in either dev or prod environments


## Install

Runway is available via any of the following installation methods. Use whatever works best for your project/team (it's the same application no matter how you obtain it).

### HTTPS Download (e.g cURL)

Use one of the endpoints below to download a single-binary executable version of Runway based on your operating system.

| Operating System | Endpoint                               |
|------------------|----------------------------------------|
| Linux            | <https://oni.ca/runway/latest/linux>   |
| macOS            | <https://oni.ca/runway/latest/osx>     |
| Windows          | <https://oni.ca/runway/latest/windows> |

```shell
$ curl -L oni.ca/runway/latest/osx -o runway
$ chmod +x runway
$ ./runway new
```

**Suggested use:** CloudFormation or Terraform projects


### npm

```shell
$ npm i -D @onica/runway
$ npx runway new
```

**Suggested use:** Serverless or AWS CDK projects


### pip (or poetry, etc)

```shell
$ pip install runway
$ runway new
# OR
$ poetry add --dev runway
$ poetry run runway new
```

**Suggested use:** Python projects


## Documentation

See the [doc site](https://docs.onica.com/projects/runway) for full documentation.

Quickstart documentation, including CloudFormation templates and walkthrough can be found [here](https://docs.onica.com/projects/runway/page/quickstart/index.html)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/onicagroup/runway",
    "name": "runway",
    "maintainer": "Kyle Finley",
    "docs_url": null,
    "requires_python": ">=3.9,<3.13",
    "maintainer_email": "kyle@finley.sh",
    "keywords": "cli",
    "author": "Onica Group LLC",
    "author_email": "opensource@onica.com",
    "download_url": "https://files.pythonhosted.org/packages/43/c8/7f1c84babc87e79b38ed477969677a3ffc25867d5f7d8fed22f669bf8cb5/runway-2.6.14.tar.gz",
    "platform": null,
    "description": "# Runway\n\n[![CI/CD](https://github.com/onicagroup/runway/workflows/CI/CD/badge.svg?branch=master)](https://github.com/onicagroup/runway/actions?query=workflow%3ACI%2FCD)\n[![codecov](https://codecov.io/gh/onicagroup/runway/branch/master/graph/badge.svg?token=Ku28I0RY80)](https://codecov.io/gh/onicagroup/runway)\n[![PyPi](https://img.shields.io/pypi/v/runway?style=flat)](https://pypi.org/project/runway/)\n[![npm](https://img.shields.io/npm/v/@onica/runway?style=flat)](https://www.npmjs.com/package/@onica/runway)\n[![code style: black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)\n\n![runway-example.gif](https://raw.githubusercontent.com/onicagroup/runway/master/docs/source/images/runway-example.gif)\n\nRunway is a lightweight integration app designed to ease management of infrastructure tools.\n\nIts main goals are to encourage GitOps best-practices, avoid convoluted Makefiles/scripts (enabling identical deployments from a workstation or CI job), and enable developers/admins to use the best tool for any given job.\n\n\n## Features\n\n* Centralized environment-specific configuration\n* Automatic environment identification from git branches\n* Automatic linting/verification\n* Support of IAM roles to assume for each deployment\n* Terraform backend/workspace config management w/per-environment tfvars\n* Automatic kubectl/terraform version management per-environment\n\n### Supported Deployment Tools\n\n* AWS CDK\n* Kubectl\n* Serverless Framework\n* CFNgin (CloudFormation)\n* Static websites (build & deploy to S3+CloudFront)\n* Terraform\n\n\n## Example\n\nA typical Runway configuration is unobtrusive -- it just lists the deployment order and locations (regions).\n\n```yml\ndeployments:\n  - modules:\n      - resources.tf  # terraform resources\n      - backend.sls  # serverless lambda functions\n      - frontend  # static web site\n    environments:  # Environments\n      dev: \"123456789012\"  # AWS development Account ID\n      prod: \"234567890123\"  # AWS production Account ID\n    regions:\n      - us-east-1\n```\n\nThe example above contains enough information for Runway to deploy all resources, lambda functions and a static website backed by S3 and Cloudfront in either dev or prod environments\n\n\n## Install\n\nRunway is available via any of the following installation methods. Use whatever works best for your project/team (it's the same application no matter how you obtain it).\n\n### HTTPS Download (e.g cURL)\n\nUse one of the endpoints below to download a single-binary executable version of Runway based on your operating system.\n\n| Operating System | Endpoint                               |\n|------------------|----------------------------------------|\n| Linux            | <https://oni.ca/runway/latest/linux>   |\n| macOS            | <https://oni.ca/runway/latest/osx>     |\n| Windows          | <https://oni.ca/runway/latest/windows> |\n\n```shell\n$ curl -L oni.ca/runway/latest/osx -o runway\n$ chmod +x runway\n$ ./runway new\n```\n\n**Suggested use:** CloudFormation or Terraform projects\n\n\n### npm\n\n```shell\n$ npm i -D @onica/runway\n$ npx runway new\n```\n\n**Suggested use:** Serverless or AWS CDK projects\n\n\n### pip (or poetry, etc)\n\n```shell\n$ pip install runway\n$ runway new\n# OR\n$ poetry add --dev runway\n$ poetry run runway new\n```\n\n**Suggested use:** Python projects\n\n\n## Documentation\n\nSee the [doc site](https://docs.onica.com/projects/runway) for full documentation.\n\nQuickstart documentation, including CloudFormation templates and walkthrough can be found [here](https://docs.onica.com/projects/runway/page/quickstart/index.html)\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Simplify infrastructure/app testing/deployment",
    "version": "2.6.14",
    "project_urls": {
        "Bug Tracker": "https://github.com/onicagroup/runway/issues",
        "Documentation": "https://docs.onica.com/projects/runway",
        "Homepage": "https://github.com/onicagroup/runway",
        "Repository": "https://github.com/onicagroup/runway"
    },
    "split_keywords": [
        "cli"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1d01f1b41824e39f0e3ee5a4f51084f6e89f445d62e3b4579a6f332614c1f600",
                "md5": "61b9f8542907ab1b9e913af59df3b29b",
                "sha256": "f5f032cfe4b4f9ce865f3f52f1b5c58a106799be8e963dd1adfd118749c146de"
            },
            "downloads": -1,
            "filename": "runway-2.6.14-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "61b9f8542907ab1b9e913af59df3b29b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<3.13",
            "size": 781345,
            "upload_time": "2024-03-11T21:38:07",
            "upload_time_iso_8601": "2024-03-11T21:38:07.370016Z",
            "url": "https://files.pythonhosted.org/packages/1d/01/f1b41824e39f0e3ee5a4f51084f6e89f445d62e3b4579a6f332614c1f600/runway-2.6.14-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "43c87f1c84babc87e79b38ed477969677a3ffc25867d5f7d8fed22f669bf8cb5",
                "md5": "5fffd141bdbb0a4b487dc8ad27f8d9b8",
                "sha256": "3c9e6ec462ea4b18de69f929bd38c3b9e7ccb4e9ba0312656cdfec6093915503"
            },
            "downloads": -1,
            "filename": "runway-2.6.14.tar.gz",
            "has_sig": false,
            "md5_digest": "5fffd141bdbb0a4b487dc8ad27f8d9b8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<3.13",
            "size": 583467,
            "upload_time": "2024-03-11T21:38:11",
            "upload_time_iso_8601": "2024-03-11T21:38:11.060616Z",
            "url": "https://files.pythonhosted.org/packages/43/c8/7f1c84babc87e79b38ed477969677a3ffc25867d5f7d8fed22f669bf8cb5/runway-2.6.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-11 21:38:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "onicagroup",
    "github_project": "runway",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "runway"
}
        
Elapsed time: 0.29323s