CI pipeline: split tests into lint and test phases
Current CI pipeline setup runs regular tests along with lint checks. If all tests are ok, but lint fails, the whole phase is marked as failed. lint checks are quick, and they act a bit as a sanity/gateway checks. They should be executed before test suite run, so any fail at this stage won't trigger full run of tests (which takes time).