Improve ci pipeline
What does this MR do?
Currently, we are building things multiple times what is inefficient.
- Adds a new build with dev dependencies for tests and docs
- Adds a separate stage for docs build to not build the same things multiple times
- Change from dependencies to needs (jobs are starting earlier)
- Build and test only if necessary, as far as possible
For files where I'm unsure if it makes sense to test at change, I keep the testing in changes.
This is only for MRs (most of our CI Runs). When Deploying always all tests are running.
How confident are you it won't break things if deployed?
Almost sure, because there are no changes in Deployment
Links to related issues
closes #1558 (closed) closes #1564 (closed)
How to test
- test for changes in docs
- test for changes in src
- test for changes in websocket
- test for changes in frontend
Checklist
-
no unrelated changes -
asked someone for a code review -
set a "for:" label to indicate who will be affected by this change -
added to the next milestone (see https://gitlab.com/foodsharing-dev/foodsharing/-/milestones, unless it has a "for:Dev" label) -
added an entry to CHANGELOG.md
Edited by Stefan C