Only clone GitLab Shell on tests if necessary.
Created by: cirosantilli
Before this change, tmp/test
got removed before every time we started running tests, and we had to clone GitLab Shell again.
Now:
-
tmp/test/gitlab-shell
is not removed before tests, only the other siblings - it only gets cloned if the repo does not exist already
- if the repo and the correct shell version exist, it only checks out
- otherwise do a git fetch instead of a clone
Use case: allow to run tests without the Internet (airplane, commuting, internet problems, GitLab.com downtime, etc.)
There is only one more Internet dependency: cloning gitlab-test
, but that one is harder to deal with since all branches must be synced.
Still, this change already makes testing a bit faster and walks towards that goal.
Implementation notes:
-
unless File.directory?
: removed because was never used becauserm_rf
always removedtests
, and should not be used in theory either, since if the repository is there we might want to fetch.