https://developer.github.com/v3/guides/building-a-ci-server/ https://docs.gitlab.com/ee/ci/examples/README.html
My simplified workflow is: do work locally using whatever IDE I desire -> create a pull request -> server runs the tests and puts the results in the pull request. Much faster than running the same tests on my local machine as well.
With the tests being done remote you will also likely not need to commit such large amounts of data that it becomes a problem.
> Working with a local environment and 4g connection is fine, because 4g is more than enough to look up docs. But working with a distant environment and 4g connection is very slow and unreliable.
Normally even if you are working remote it's expected that you have a stable, decent, connection. But even without one there are plenty of great options.
For documentation I actually keep that local using https://devdocs.io/.
Without internet you don't have sites like stackoverflow and that's a downside that really can't be fixed without some serious work.