Render
Run Smoketest after Render deploys finish.
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.
- Create a deployment webhook in Smoketest.
- In Render, create a webhook for the service or workspace.
- Subscribe to deploy completion events and filter for successful deploys where possible.
- 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.
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.comFor image-backed services, use the same pattern after the image tag or digest has been deployed.