Railway/Tutorials
GitHub Actions Post-Deploy
GitHub Actions を使用して Railway デプロイ後のコマンドを自動実行する方法を解説します。
著者: AIイノベーションズ 阿部隼也(X / Twitter)GitHub Actions Post-Deploy
Railwayでのデプロイが成功した後に、データベースのマイグレーションやキャッシュのクリアなど、追加のタスクを実行したい場合があります。このチュートリアルでは、GitHub Actionsを使用して、デプロイ後のフックを設定する方法を説明します。
The Action
Railwayは、デプロイメントが完了したときにdeployment
イベントをディスパッチする公式GitHub Actionを提供しています。このアクションをワークフローで利用して、デプロイ後のステップを自動化できます。
以下は、Railwayへのデプロイが成功した後に、データベースのマイグレーションを実行するワークフローの例です。
name: Post-Deploy Migration
on:
deployment_status:
types: [success]
jobs:
migrate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: railwayapp/action@v1
with:
railway_token: ${{ secrets.RAILWAY_TOKEN }}
run: railway run npm run db:migrate
このワークフローでは、
on: deployment_status
で、Railwayのデプロイメントステータスの変更をトリガーとしています。types: [success]
で、デプロイが成功した場合にのみジョブが実行されるようにフィルタリングしています。railwayapp/action@v1
を使用して、Railway CLIコマンドを実行しています。railway_token
には、GitHubリポジトリのシークレットに保存されたRailwayのAPIトークンを渡しています。run: railway run npm run db:migrate
で、railway run
コマンドを使用して、Railwayの環境変数を注入した上でnpm run db:migrate
スクリプトを実行しています。
結論
GitHub ActionsとRailwayのdeployment
イベントを組み合わせることで、デプロイ後のタスクを柔軟かつ強力に自動化できます。これにより、手動での操作を減らし、CI/CDパイプラインの信頼性を向上させることができます。
PR