/flyctl-actions

:octocat: GitHub Action that wraps the flyctl

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Automate Fly.io app deployment

This action wraps the Fly.io CLI. Use it to deploy or manage your Fly.io application via Github Actions events.

Usage for Deployment

Tip

For production deployments, pin flyctl to a specific version to avoid unexpected behavior in edge releases.

name: Deploy to Fly
on: [push]
jobs:
  deploy:
    name: Deploy proxy
    runs-on: ubuntu-latest
    steps:
      # This step checks out a copy of your repository.
      - uses: actions/checkout@v2
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only
        env:
          FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

Pin to a specific version of flyctl:

- uses: superfly/flyctl-actions/setup-flyctl@master
  with:
    version: 0.0.462

Running one-off scripts

name: Run on Fly
on: [push]
jobs:
  deploy:
    name: Run script
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: "flyctl ssh console --command 'sh ./myscript.sh'"
        env:
          FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}

See the flyctl GitHub project for more information on using flyctl.

Secrets

FLY_API_TOKEN - Required. The token to use for authentication. You can find a token by running flyctl auth token or going to your user settings on fly.io.

Using the setup-flyctl action

This documentation only covers usage of the setup-flyctl action. The main action in this repository runs more slowly inside Docker, so is not recommended. It's been kept in place since many CI pipelines are still using it.