CI / CD Pipeline with Staging Environment and automated tests

Hi Everyone,

we currently have a set-up that uses two servers one for the production environment and one for a staging environment. They are not linked to each other and we do deployments manually by adding add-ons or testing configuration changes on staging and then repeating them in production.

Now I would like to optimise this by setting up a GitHub repository with multiple branches and a proper CI / CD pipeline, including testing.

Does anyone have any experience with setting this up? It would already be helpful to get some insights on the Git setup (e.g. .gitignore, where I found an example but nothing up-to-date). Especially the automated deployment to the servers and some automated tests would be very helpful.

Thanks a lot for any input, I am happy to answer any questions you might have.