====== CI Issues ======
===== remote: You are not allowed to download code from this project. =====
Cloning into '/builds/group/project/buildroot/src/maginc-submodule'...
remote: You are not allowed to download code from this project.
fatal: unable to access 'https://gitlab.example.com/groups/project/magic-submodule.git': The requested URL returned error: 403
fatal: clone of 'https://gitlab-ci-token:[MASKED]@gitlab.example.com/groups/project/magic-submodule.git' into submodule path '/builds/group/project/buildroot/src/maginc-submodule' failed
Reason:
[[https://docs.gitlab.com/ee/update/deprecations.html#default-cicd-job-token-ci_job_token-scope-changed|Default CI/CD job token (CI_JOB_TOKEN) scope changed]]
More:
[[https://gitlab.grinndev.ovh/help/ci/jobs/ci_job_token#allow-access-to-your-project-with-a-job-token|Allow access to your project with a job token]]
Solution:
* Go to ''Submodule to be cloned'' in Gitlab UI
* Settings --> CI/CD --> Token Access
===== fatal: No names found, cannot describe anything =====
fatal: No names found, cannot describe anything.
When ''git describe --tags'' is used to detect version name but repository doesn't contain tags.
Possible reasons of failure:
* shallow clone, to unshallow run ''sudo git fetch --unshallow''
* gitlab ???
===== cannot run ssh =====
Synchronizing submodule url for 'xxx'
Cloning into 'xxx'...
error: cannot run ssh: No such file or directory
fatal: unable to fork
fatal: clone of 'git@gitlab.xxx:xxx/xxx.git' into submodule path 'xxx' failed
Looks like SSH client is not installed in Job image (install ''openssh-clients'').
**Reason:** During clone operation Gitlab Runner is using small helper (around 66MB) image where ssh client is not installed:
docker run --rm -it registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:alpine-latest-x86_64-000bc602 ssh
It is possible to chose flavour of helper image: [[https://docs.gitlab.com/runner/configuration/advanced-configuration.html#helper-image|helper-image]]
Images source: [[https://gitlab.com/gitlab-org/gitlab-runner/-/tree/main/dockerfiles/runner-helper|runner-helper]]
Ubuntu helper flavour contains ssh client:
docker run --rm -it gitlab/gitlab-runner-helper:ubuntu-x86_64-bleeding ssh
docker run --rm -it gitlab/gitlab-runner-helper:ubuntu-x86_64-v15.11.1 ssh
**Solution**: use Ubuntu based helper image:
[runners.docker]
helper_image = "gitlab/gitlab-runner-helper:ubuntu-x86_64-v16.0.2"
helper_image_flavor = "ubuntu"
**Workaround 1:** use relative submodules as described in [[https://docs.gitlab.com/ee/ci/git_submodules.html#using-relative-urls|Using relative URLs]]. Gitlab runner will use https to clone submodules.
**Workaround 2:** [[https://docs.gitlab.com/ee/ci/runners/configure_runners.html#rewrite-submodule-urls-to-https|Rewrite submodule URLs to HTTPS]]
===== CAfile: none =====
fatal: unable to access 'https://gitlab-ci-token:[MASKED]@gitlab.example.com/superproject/sandbox.git/': server certificate verification failed. CAfile: none CRLfile: none
Problem test:
git clone https://gitlab.example.com
fatal: unable to access 'https://gitlab.example.com/': server certificate verification failed. CAfile: none CRLfile: none
Solution:
sudo apt update; sudo apt install -yq libgnutls30 ca-certificates
Dockerfile fix:
RUN apt-get update && apt-get install -yq --no-install-recommends \
ca-certificates \
libgnutls30 \
&& apt-get clean && rm -rf /var/lib/apt/lists/*