AIイノベーションズ
Railway/Tutorials

GitHub Actions Post-Deploy

GitHub Actions を使用して Railway デプロイ後のコマンドを自動実行する方法を解説します。

著者: AIイノベーションズ 阿部隼也X / Twitter

Railwayはこちら

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パイプラインの信頼性を向上させることができます。

Railwayはこちら

PR