GitHub ActionsのWorkflowを使ってgithub上でマージを行なった際に自動でHerokuへのデプロイを行う
設定を追加してみたので、手順を共有します。
具体的な手順
1. GitHubリポジトリにデプロイ用の設定ファイルを作成する
リポジトリのルートディレクトリに.github/workflows/deploy.yml
という名前のファイルを作成します。
2. デプロイ用の設定ファイルに必要なコードを追加する
name: DeployToStaging
on:
push:
branches:
- staging
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: akhileshns/heroku-deploy@v3.12.13
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "app-name"
heroku_email: ${{secrets.HEROKU_EMAIL}}
上記のコードでは、push
イベントが発生し、staging
ブランチにプッシュされた場合にのみデプロイがトリガーされます。
デプロイはubuntu-latest
ランナーで実行されます。actions/checkout
アクションを使用してコードをチェックアウトし、akhileshns/heroku-deploy
アクションを使用してHerokuへデプロイします。
Herokuへのデプロイには、GitHub Secretsで設定した変数HEROKU_API_KEY
とHEROKU_EMAIL
が必要です。
注意事項
この自動デプロイが実行されると、heroke上の使用ブランチが自動的にmasterブランチからmainブランチに変わる
らしいです。masterで運用している方はご注意ください。
参考: https://github.com/marketplace/actions/deploy-to-heroku#important-note
3. Heroku APIキーの取得 / GitHub Secretsの設定
Heroku APIキーを取得するためには、Herokuのダッシュボードにログインし、
[Account settings] -> [API Key]
のセクションに移動します。APIキーをコピーして、GitHubリポジトリの
[Settings] -> [Secrets]
に移動し、HEROKU_API_KEY
という名前で新しいシークレットを作成し、コピーしたAPIキーを値として追加します。
また、サンプルコードではメールアドレスが必要でHEROKU_EMAIL
という名前で新しいシークレットを作成し、対応する値を追加します。
まとめ
上記の手順を完了すると、GitHub Actionsが自動的に設定され、staging
ブランチへのプッシュがトリガーとなり、Herokuへの自動デプロイが行われます。
各プッシュイベントで自動的にデプロイが行われ、アプリケーションが最新のコードで更新されるようになります。
注意: デプロイの設定や詳細な手順は、環境や要件によって異なる場合がありますので、公式のドキュメント等を参照してください。