Giter VIP home page Giter VIP logo

flyctl's Introduction

flyctl

flyctl is a command-line interface for fly.io

Note: Most installations of flyctl also alias flyctl to fly as a command name and this will become the default name in the future. During the transition, note that where you see flyctl as a command it can be replaced with fly.

Installation

Using a Package Manager

Homebrew (macOS, Linux, WSL)

brew install flyctl

To upgrade to the latest version:

brew upgrade flyctl

Install Script

Download flyctl and install into a local bin directory.

MacOS, Linux, WSL

Installing the latest version:

curl -L https://fly.io/install.sh | sh

Installing the latest pre-release version:

curl -L https://fly.io/install.sh | sh -s pre

Installing a specific version:

curl -L https://fly.io/install.sh | sh -s 0.0.200

Windows

Run the Powershell install script:

iwr https://fly.io/install.ps1 -useb | iex

Downloading from GitHub

Download the appropriate version from the Releases page of the flyctl GitHub repository.

Getting Started

  1. Sign into your fly account
fly auth login
  1. List your apps
fly apps list
  1. View app status
fly status -a {app-name}

App Settings

flyctl will attempt to use the app name from a fly.toml file in the current directory. For example, if the current directory contains this file:

$ cat fly.toml
app: banana

flyctl will operate against the banana app unless overridden by the -a flag or other app name setting in the command line.

Building on Windows

There is a simple Powershell script, winbuild.ps1, which will run the code generation for the help files, format them, and run a full build, leaving a new binary in the bin directory.

Running from branches on your local machine

Run scripts/build-dfly to build a Docker image from the current branch. Then, use scripts/dfly to run it. This assumes you are already authenticated to Fly in your local environment.

Cutting a release

If you have write access to this repo, you can ship a prerelease or full release with:

scripts/bump_version.sh prerel

or

scripts/bump_version.sh

Running preflight tests

A preflight suite of integration tests is located under the test/preflight/ directory. It uses a flyctl binary and runs real user scenarios, including deploying apps and dbs, and validates expected behavior.

Warning: Real apps will be deployed that cost real money. The test fixture does its best to destroy resources it creates, but sometimes it may fail to delete a resource.

The easiest way to run the preflight tests is:

Copy .direnv/preflight-example to .direnv/preflight and edit following these guidelines:

  • Grab your auth token from ~/.fly/config.yml
  • Do not use your "personal" org, create an new org (i.e. flyctl-tests-YOURNAME)
  • Set 2 regions, ideally not your closest region because it leads to false positives when --region or primary region handling is buggy. Run fly platform regions for valid ids.

Finally run the tests:

make preflight-test

That builds a flyctl binary (just like running make), then runs the preflight tests against that binary.

To run a single test:

make preflight-test T=TestAppsV2Example

Oh, add more preflight tests at tests/preflight/*

flyctl's People

Contributors

dangra avatar jsierles avatar michaeldwan avatar codepope avatar rugwirobaker avatar tvdfly avatar alichay avatar davissp14 avatar billyb2 avatar shortdiv avatar rubys avatar matttpt avatar azazeal avatar tqbf avatar jipperinbham avatar ndarilek avatar fideloper avatar jeromegn avatar kzys avatar dalperin avatar pborzenkov avatar benwaffle avatar haileys avatar jphenow avatar mrkurt avatar gwuah avatar senyosimpson avatar lubien avatar katiayn avatar lillianberryfly avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.