Skip to main content

Simplify infrastructure/app testing/deployment

Project description

Runway

CI/CD codecov PyPi npm code style: black

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).

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
$ curl -L oni.ca/runway/latest/osx -o runway
$ chmod +x runway
$ ./runway new

Suggested use: CloudFormation or Terraform projects

npm

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

Suggested use: Serverless or AWS CDK projects

pip (or poetry, etc)

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

Suggested use: Python projects

Documentation

See the doc site for full documentation.

Quickstart documentation, including CloudFormation templates and walkthrough can be found here

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

runway-2.6.14.tar.gz (583.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

runway-2.6.14-py3-none-any.whl (781.3 kB view details)

Uploaded Python 3

File details

Details for the file runway-2.6.14.tar.gz.

File metadata

  • Download URL: runway-2.6.14.tar.gz
  • Upload date:
  • Size: 583.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.9.18 Linux/6.5.0-1015-azure

File hashes

Hashes for runway-2.6.14.tar.gz
Algorithm Hash digest
SHA256 3c9e6ec462ea4b18de69f929bd38c3b9e7ccb4e9ba0312656cdfec6093915503
MD5 5fffd141bdbb0a4b487dc8ad27f8d9b8
BLAKE2b-256 43c87f1c84babc87e79b38ed477969677a3ffc25867d5f7d8fed22f669bf8cb5

See more details on using hashes here.

File details

Details for the file runway-2.6.14-py3-none-any.whl.

File metadata

  • Download URL: runway-2.6.14-py3-none-any.whl
  • Upload date:
  • Size: 781.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.9.18 Linux/6.5.0-1015-azure

File hashes

Hashes for runway-2.6.14-py3-none-any.whl
Algorithm Hash digest
SHA256 f5f032cfe4b4f9ce865f3f52f1b5c58a106799be8e963dd1adfd118749c146de
MD5 61b9f8542907ab1b9e913af59df3b29b
BLAKE2b-256 1d01f1b41824e39f0e3ee5a4f51084f6e89f445d62e3b4579a6f332614c1f600

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page