Skip to content

Render

Run Smoketest after Render deploys finish.

View as Markdown

Render supports webhooks for deploy lifecycle events. Smoketest can receive those webhooks for basic fixed-URL testing, or you can call Smoketest from the pipeline that triggers the Render deploy.

Basic mode: Render deploy-ended webhook

Use this when the Smoketest test already points at the Render service URL.

  1. Create a deployment webhook in Smoketest.
  2. In Render, create a webhook for the service or workspace.
  3. Subscribe to deploy completion events and filter for successful deploys where possible.
  4. Use the Smoketest trigger URL as the webhook endpoint.

Render sends a JSON payload with Render's event shape. Smoketest ignores unknown fields and queues the configured target. Basic mode does not create GitHub checks or use a dynamic URL unless Render sends normalized Smoketest fields.

Full metadata mode: after calling Render

If your CI deploys to Render or triggers a Render deploy hook, call Smoketest after the deploy is live.

.github/workflows/render-smoketest.yml
name: Deploy to Render and run Smoketest

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Trigger Render deploy
        run: curl -fsS "$RENDER_DEPLOY_HOOK_URL"
        env:
          RENDER_DEPLOY_HOOK_URL: ${{ secrets.RENDER_DEPLOY_HOOK_URL }}
      - name: Wait for Render service
        run: ./scripts/wait-for-url.sh "$DEPLOYMENT_URL"
        env:
          DEPLOYMENT_URL: https://app.example.com
      - name: Trigger Smoketest
        run: |
          curl -sf -X POST -G "$SMOKETEST_DEPLOYMENT_WEBHOOK_URL" \
            -H "Idempotency-Key: ${{ github.run_id }}-${{ github.run_attempt }}" \
            --data-urlencode "targetUrl=$DEPLOYMENT_URL" \
            --data-urlencode "commitSha=${{ github.sha }}" \
            --data-urlencode "branch=${{ github.ref_name }}" \
            --data-urlencode "externalId=${{ github.run_id }}-${{ github.run_attempt }}"
        env:
          SMOKETEST_DEPLOYMENT_WEBHOOK_URL: ${{ secrets.SMOKETEST_DEPLOYMENT_WEBHOOK_URL }}
          DEPLOYMENT_URL: https://app.example.com

For image-backed services, use the same pattern after the image tag or digest has been deployed.

On this page