🚀

GitHub ActionsでFly.ioへのデプロイを自動化する手順

2023/08/19に公開

※ 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

また、ダッシュボードのトークンタブから発行することも可能です。

参考: Deploy Tokens · Fly Docs

2. GitHubのsecretsにトークンを設定

作成したトークンをGitHubのsecretsに設定します。

リポジトリの、settingsタブ → Secrets and variablesActionsNew repository secret と選択し、新しいsecretの登録します。

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

3. ワークフローの作成

GitHub Actionsのワークフローを作成します。

Continuous Deployment with Fly.io and GitHub Actions に記載のある通りファイルを作成します。

.github/workflows/fly.yml
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