If I have several apps in a project that depends on each other, how can I manage that dependency chain in the project (such as depend_on in a docker-compose file) ?
Typically I have a PostgreSQL DB and a Ruby on Rails worker and I want to be sure that the DB is deployed before the RoR worker starts
This case is already handled by Qovery. All databases are always started before the applications when you deploy your environment.
Qovery lets you manage the deployment order between your apps within the same environment. At the moment it’s not yet available via the web console (it will be in Q4 2022), but you can manage it via our API.
Let’s say you have a Database, a Backend, and a Frontend. The backend depends on your database, the frontend depends on the backend. Then you must start the Database, then the Backend, then the Frontend.
Qovery:
Always start databases first
Determine the deployment order based on the dependency you set between your apps.
Here are the API commands to make your Backend app depending on the frontend:
curl -X POST -H 'Authorization: Token <Your Qovery API Token>' \
https://api.qovery.com/application/{backendId}/dependency/{frontendId}
That’s it! You can now deploy your environment and you will see that the Backend app always starts before the Frontend app.
wow I am just impressed by your reactivity. For the time being, we are only using the console but I have the feeling we are missing out on the potential offered by API.
From your customers experiences, is Github hooks the most efficient/practical usage of deploying thru API ?
Github Actions (or any other CI) + Qovery is a good practice to improve your build, testing, and deployment flow. You can take a look at this guide where we explain how you can combine Github Actions and Qovery together.
I only recommend using Github Actions if you want to build a more complex build and testing pipeline than what you have today.