4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Github ActionsでRenderに自動デプロイさせる

4
Last updated at Posted at 2026-02-07

この記事でできるようになること

mainマージ=リリースとする運用を前提に、
PR → CI → mainマージ の流れでRenderへ自動デプロイする構成を構築できるようになります。

前提

  • デプロイはRender
  • CIでRubocop, breakman使用
  • デプロイするときはmainにプッシュしたタイミング

本構成では、main ブランチにはブランチ保護ルールを設定し、CI(Rubocop / Brakeman)が成功しないとマージできないようにしています。
そのため、main への push が発生した時点で品質チェックは通過しており、push トリガーでそのままデプロイする構成にしています。

自動デプロイの設計

1. PR作成
↓
2. GitHub ActionsでCIが走る(Rubocop / Brakeman)
↓
3. CI成功しないとマージ不可(ブランチ保護)
↓
4. mainにマージ
↓
5. 自動デプロイ

CI成功後にデプロイするような設定(workflow_run 構成)も検討しましたが、
今回はブランチを保護して品質を担保しているため、
よりシンプルに構成できるpushをトリガーにすることを採用しました。

deploy.ymlの作成

アプリのルートから.github/workflowsに移動してdeploy.ymlを作成する。

# .github/workflows/deploy.yml
name: Deploy to Render

# mainブランチにプッシュしたタイミングor手動で叩く
on:
  push:
    branches: [ main ]
  workflow_dispatch: {}

jobs:
  deploy:
    # ifで手動で叩くときにそのときのブランチがmain以外のときは動かないようにしています
    # 手動実行時は必ずmainを選んでください
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Render deploy hook
        run: curl -fsSL -X POST "$RENDER_DEPLOY_HOOK_URL"
        env:
          RENDER_DEPLOY_HOOK_URL: ${{ secrets.RENDER_DEPLOY_HOOK_URL }}

secretsの設定

GitHub ActionsからsecretsにRENDER_DEPLOY_HOOK_URLというvalueを作る。
中身にはRenderのダッシュボードから自分のアプリケーションに移動し、
Settingをクリックする。
Deploy Hookの中身をコピーして、RENDER_DEPLOY_HOOK_URLの中身にペーストする。

なお、Deploy Hookの中身は秘密情報です。
漏洩のリスクがありますので、直接コードに書くことはやめましょう。
設定しているうちに怪しくなったらすぐに無効化し、再生成しましょう。

Github ActionsからDeploy to Renderを手動で叩いて挙動を確認してみましょう。

設定は以上となります。

備考

本構成は、個人開発アプリ「月めぐるノート」で実際に運用しています。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?