Closed Nutomic closed 3 years ago
I wouldn't want them to automatically deploy to our test instances, mainly because we might make fixes or corrections to database migrations, and those are really difficult to repair in place on external servers, where we would rather not clear all the data.
But I think deploying a docker image on builds to main
is a good idea.
Okay then we have to update the test servers manually after merges. Not as convenient, but still better than having to make a new RC every time.
This is completed, enterprise.lemmy.ml and ds9.lemmy.ml run the latest commit from main, while voyager.lemmy.ml runs the latest release. All are available for testing. However we decided to update manually, because there might be migration problems which need to be fixed manually.
I think it would be useful for testing if we built Docker images from the main branch, and pushed them to Docker Hub (using a tag like
lemmy:dev
). Either after every commit, or as a nightly build.Then we could run a cronjob on enterprise.lemmy.ml and ds9.lemmy.ml to automatically pull the latest
lemmy:dev
image at regular intervals. voyager.lemmy.ml could stay at the latest stable version (same as lemmy.ml), to test that federation between stable and devel is working correctly.This would also be useful for all client developers, as they would have separate test servers for the current stable version, and for the next major release.
Edit: Tried to implement this by modifying .drone.yml. But cron builds arent supported on cloud.drone.io, only when selfhosting. The alternative is to build for each push to main, but combining multiple
when
conditions in one step (tag and branch) means that all of them have to be true. I want to push to docker hub and push the docker manifest when we are either on main, or there is a tag. So it seems like we need to duplicate each of those steps, for each architecture, meaning 4 duplicated steps.