Simplify infrastructure/app testing/deployment

Usage no npm install needed!

<script type="module">
  import onicaRunway from 'https://cdn.skypack.dev/@onica/runway';



CI/CD codecov PyPi npm code style: black


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.


  • 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

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


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

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


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


See the doc site for full documentation.

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