Installation
To enable Runway to conform to our users’ varying use cases, we have made it available via three different install methods - cURL, npm, and pip.
cURL
Arguably the easiest way to install Runway is by using 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 |
|
macOS |
|
Windows |
curl -L https://oni.ca/runway/latest/linux -o runway
curl -L https://oni.ca/runway/latest/osx -o runway
Invoke-WebRequest -Uri "https://oni.ca/runway/latest/windows" -OutFile runway
Note
To install a specific version of Runway, you can replace latest
with a version number.
Usage
To use the single-binary, run it directly as shown below. Please note that
after download, you may need to adjust the permissions before it can be
executed. (eg. Linux/macOS:chmod +x runway
)
$ ./runway deploy
Suggested use: CloudFormation or Terraform projects
npm
Runway is published on npm as @onica/runway
.
It currently contains binaries to support macOS, Ubuntu, and Windows.
While Runway can be installed globally like any other npm package, we strongly recommend using it per-project as a dev dependency. See Why Version Lock Per-Project for more info regarding this suggestion.
$ npm i -D @onica/runway
Usage
$ npx runway deploy
Suggested use: Serverless or AWS CDK projects
pip
Runway runs on Python 2.7 and Python 3.5+.
Runway is hosted on PyPI as the package named runway
.
It can be installed like any other Python package, but we instead strongly recommend using it
per-project with poetry.
See Why Version Lock Per-Project for more info regarding this suggestion.
Suggested use: Python projects
poetry add runway
pip install --user runway
# or (depending on how Python was installed)
pip install runway
Usage
poetry run runway --help
runway --help
Why Version Lock Per-Project
Locking the version of Runway per-project will allow you to:
Specify the version(s) of Runway compatible with your deployments config
Ensure Runway executions are performed with the same version (regardless of where/when they occur – avoids the dreaded “works on my machine”)