Directory structure produces too long file paths
So this is a peculiar bug. It is tied to the following Stack Overflow question and (unfortunately) many other components that do not like long file paths.
Here I have a build page for a single commit on ci.gitlab.com. I re-ran one of the builds post-migration from the Omnibus package to the gitlab-ci-multi-runner package on Ubuntu 14.04.
The first error is obvious:
.gitlabci.sh: /home/gitlab_ci_multi_runner/tmp/builds/runner-6aa1a03e-project-1746-concurrent-0/gitlab.com/carmenbbakker/pyparadox/.virtualenvs/python3/bin/pip: /home/gitlab_ci_multi_runner/tmp/builds/runner-6aa1a03e-project-1746-concurre: bad interpreter: No such file or directory
The pip executable looks like this:
#!/home/gitlab_ci_multi_runner/tmp/builds/runner-9c5c3214-project-1329-concurrent-0/gitlab.com/carmenbbakker/schaakmat/.virtualenvs/python3/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
Notice the shebang line. It is too long for the system to handle, and it borks.
Then when it comes to running the tests (it uses the system tox instead, but that's fine), it just kind of borks and breaks and doesn't know what it's doing. It complains about a file that doesn't exist, and I don't fancy crawling through the tox and venv codebases to figure out what exactly the point of failure is.
In the case of shebangs, I would have to recompile my kernel. In the case of any other component, I would have to issue bug reports on every single component I use that breaks in some mysterious way because of an insanely long file path.
Though it's insane that components break because of long file paths, the bug lies with the directory structure of gitlab-ci-multi-runner, as far as I'm concerned.