I am currently working on setting up a CI/CD pipeline using GitHub Actions with Render, and I am aiming for a clean deployment workflow. The idea is to first run all necessary checks, linting, unit tests, build validation, etc. and only trigger a deployment to Render if everything passes. I’ve already disabled auto-deploy on Render to prevent untested code from going live.
Right now, I am considering two approaches: using the Render Deploy Action, or calling the Render Deploy API directly using curl. The GitHub Action seems more convenient, especially with features like wait_deploy: true and GitHub deployment status updates, but I’m curious how well it works in more complex workflows. I’ve set up my Render API key and service ID as GitHub Secrets, and plan to run the deployment job only if my test job succeeds (needs: test in the YAML).
Has anyone here implemented something similar? Specifically, I’d love to hear how you are handling environment-based deployments (like separate staging and production deploys), or even preview environments per PR — is that even possible with Render? Also, any gotchas or limitations you have run into with using Render’s Deploy API from GitHub Actions?
Appreciate any insights or examples from your own setup. Just trying to build something clean and reliable. Thanks in advance!