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