CI Can't clone submodule / timing?

I have a repo in self-hosted gitlab. Which has many submodules as they are re-used throughout other projects.

The project has it’s own dedicated CI runner (self hosted, - a ubuntu VM on the same host as the gitlab server)

I get the following error:

gitlab-ci-multi-runner 1.1.3 (a470667)
Using Shell executor...
Running on ci01-api...
Fetching changes...
Removing vendor/
HEAD is now at 0767dda changed params
From http://gitlab.local/api/datastore
   0767dda..16eb7f3  master     -> origin/master
Fetching submodule build/cli
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

ERROR: Build failed: exit status 1

Notice it fails loading the submodule build/cli

If I retry the test it completes okay, so looks like a timing issue ? Maybe gitlab hasn’t finished updating something from the commit before it triggers the CI ?

Some of the gitlab-ci.yml
before_script:
- sudo adduser gitlab-runner www-data
- eval ssh-agent -s
- ssh-add <(echo “$SSH_PRIVATE_KEY”)
- mkdir -p ~/.ssh
- echo -e “Host *\n\tStrictHostKeyChecking no\n\n” > ~/.ssh/config
- git submodule update --init --recursive
- printenv

I realized today that GitLab CI doesn’t support submodules. I was trying to see if we could switch from Jenkins to GitLab CI. What you are doing is a really painful workaround that I also have tried to implement.

I filed an issue on the GitLab CI multi runner: #1569 Cannot fetch submodules