ci: Refactor CI jobs
- Split jobs where possible.
- Remove need to install dependencies like Node, Python and Pip.
- Use the latest Debian version.
- Add lockfile-based cache invalidation.
- Expose artifacts to possibly use in future builds for continuous deployment.
- Add job to build all deployment artifacts on code changes.
- On self hosted runners we would save a lot of time on dealing with the cache and git clone (5+ minutes).
I also looked at cargo-chef, but it still causes cargo to compile some dependencies again. Even more, it does not work for our project structure yet. Last, using custom CI images I found that what you gain in not having to load the cache during the CI job, you loose pulling a larger Docker image. Networking is slow for Gitlab CI.
Edited by Chris