Create dependencies Docker image
Description
The goal of this MR is to create a new Docker image that contains all the dependencies of Concrexit. This image would be built using a Gitlab CI Pipeline schedule.
With this change the following would happen:
- Every day (or on some other schedule) a new Docker image containing only the dependencies (including the development dependencies) is being build.
- The CI jobs run using the dependencies image. This removes the dependency install time from every job.
-
poetry install
is still being run on every job, to make sure dependencies specific to that branch are being installed.
-
- A Docker image (
concrexit:<sha>
) is being build on every branch, but significantly faster because the dependencies image is used as the base image. - When a production Docker is being built, a new dependencies image without the development dependencies is build first.
The advantages:
- Faster builds.
- Always build using up to date dependencies (thaliawww/python-thalia is not automatically build and updated).
- Better maintainable configuration, because everything is in this repo instead of two repos on two different platforms.
Because a lot of refactoring is being done, this MR also refactors the whole config to be consistent.
Edited by Ghost User