GitHub ActionsでFly.ioへのデプロイを自動化する手順
※ 2023/08/19 時点の情報です
はじめに
Ruby on Railsで作成したアプリケーションの無料のホスティング先として Fly.io を気に入って利用しています。
今回は、GitHub Actionsを利用してFly.ioへのデプロイを自動化したので手順を共有します。
前提
- Fly.ioへのデプロイが完了していること
 - ソースコードがGitHubで管理されていること
 
Fly.ioへのデプロイ方法については、過去に記事を執筆しているのでご参考ください。
👉 Herokuの代替として注目のFly.ioでアプリケーションをデプロイする
手順
基本的には公式ドキュメントの Continuous Deployment with Fly.io and GitHub Actions を参考に進めていきます。
1. トークンの作成
デプロイの際に必要なトークンの発行を行います。以下のコマンドを実行するとトークンが発行されます。
$ flyctl tokens create deploy
また、ダッシュボードのトークンタブから発行することも可能です。
2. GitHubのsecretsにトークンを設定
作成したトークンをGitHubのsecretsに設定します。
リポジトリの、settingsタブ → Secrets and variables → Actions → New repository secret と選択し、新しいsecretの登録します。

Nameに FLY_API_TOKEN 、Secretに先ほど取得したトークンを入力してください。

3. ワークフローの作成
GitHub Actionsのワークフローを作成します。
Continuous Deployment with Fly.io and GitHub Actions に記載のある通りファイルを作成します。
name: Fly Deploy
on:
  push:
    branches:
      - master
jobs:
  deploy:
    name: Deploy app
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: superfly/flyctl-actions/setup-flyctl@master
      - run: flyctl deploy --remote-only
        env:
          FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }}
上記の場合、branches の設定が master となっているので、masterブランチにpushされたタイミングでデプロイされる設定となっています。こちらのは自身の環境に合わせて変更してください。
4. 動作確認
指定したブランチにpushを行い、GitHubの Actions タブでワークフローが成功しているか確認します。

最後に
今回は、GitHub ActionsでFly.ioへのデプロイを自動化する方法を紹介しました。改めて公式ドキュメントが充実して非常に良いサービスだなと感じています。今後も積極的に利用していこうと思います。
参考
Continuous Deployment with Fly.io and GitHub Actions · Fly Docs
Discussion