$ cat "dev63.hatenablog.com/entry/2024/07/20/015224.md"
// ブログエントリー — 2024/7/20

【Github Actions】Renderのworkflows設定

内容

RENDER_API_KEY, RENDER_SERVICE_ID はGithubのrepoのsettingsから登録する。

それぞれRenderのダッシュボードから値を取得できる。
RENDER_API_KEY → account settingsから発行 RENDER_SERVICE_ID → プロジェクトをダッシュボードで見た時URLにある、srv-hogehogehoge みたいな値。

name: Check Render Deploy Status

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Check Status
        env:
          RENDER_API_KEY: ${{ secrets.RENDER_API_KEY }}
          RENDER_SERVICE_ID: ${{ secrets.RENDER_SERVICE_ID }}
        run: |
          # Renderでのデプロイが完了するまで待機。サーバーリソースとアプリの状況によって調整が必要
          sleep 120

          # RenderのAPIをcurlでGETして、最新のデプロイのstatusを取得。あくまで120秒待った後の最新デプロイを参照するので、github actionsでエラーになる場合はRenderのダッシュボードも確認
          DEPLOY_STATUS=$(curl -s -X GET \
            -H "Accept: application/json" \
            -H "Authorization: Bearer $RENDER_API_KEY" \
            https://api.render.com/v1/services/$RENDER_SERVICE_ID/deploys | jq -r '.[0].deploy.status')

          # 最新のデプロイのstatusを表示
          echo "Deployment status: $DEPLOY_STATUS"

          # 最新のデプロイのstatusがliveでない場合はエラーを返す
          if [ "$DEPLOY_STATUS" != "live" ]; then
            echo "Deployment failed"
            exit 1
          fi

確認方法

上手く動かなかったので、curlのコマンドを手動でローカルから実行したりして、 中身を見る と解決した。

ENTRY: dev63.hatenablog.com/entry/2024/07/20/015224.md
DATE: 2024/7/20
WORDS: 100