scalableminds / webknossos

Visualize, share and annotate your large 3D images online
https://webknossos.org
GNU Affero General Public License v3.0
126 stars 23 forks source link

Improve CI Speed #8041

Open philippotto opened 2 months ago

philippotto commented 2 months ago

7966 already implements some improvements. Additional ideas from here (quoting @daniel-wer):

Also related: Skip some CI steps depending on diff to master #6523

fm3 commented 2 months ago

Looks like the backend linter scapegoat runs clean first. It may help to do this step before the build task :thinking:

Edit: tried that here https://app.circleci.com/pipelines/github/scalableminds/webknossos/18008/workflows/19b7c598-5689-4aca-a3be-4729ca70b9f1/jobs/29519 but did not help, the compile step compiled everything again :thinking:

philippotto commented 2 months ago

If I'm reading this issue correctly, scapegoat needs to clean the target folder so the entire code can be linted because that happens during compilation :thinking: so, the code is compiled twice effectively. it probably would make sense to run scapegoat during the normal compilation. maybe this helps? https://github.com/scapegoat-scala/sbt-scapegoat/issues/54 I'm not familiar with the sbt build process, so I can only guess..

hotzenklotz commented 1 month ago

Can we do a similar diff of the changes like in wk-libs? Or at least group frontend/backend steps? There is no need to build a WK docker image if I only do frontend changes and it crashes in formatting or unit testing.