У меня есть локальное git репо со следующими файлами:
# .gitlab-ci.yml
image: alpine:latest
before_script:
- apk update
- apk upgrade
- apk add bash
- apk add git
qa_build:
environment:
name: qa
tags:
- docker
stage: build
script:
- ./build.sh
#!/usr/bin/env bash
# build.sh
set -ex
git --version
version="$(git describe --always --debug)"
echo "Version: ${version}"
set +ex
и следующие 2 удаленных репозитория:
$ git remote -v
gitlab git@gitlab.com:user/hello-environments.git (fetch)
gitlab git@gitlab.com:user/hello-environments.git (push)
origin git@192.168.50.10:user/hello-world.git (fetch)
origin git@192.168.50.10:user/hello-world.git (push)
Я поместил все теги в оба пульта ДУ:
$ git tag
1.0.0
1.0.1
1.0.2
annotated
light
$ git push origin master --tags
$ git push gitlab master --tags
, и я могу видеть все 5 тегов в веб-интерфейсе как GitLab.com EE, так и моего локального экземпляра, которым является GitLab CE.
Когда конвейеры CI запустить, на моем локальном экземпляре (GitLab Community Edition 13.0.6) журнал показывает:
+ git --version
git version 2.26.2
++ git describe --always --debug
describe HEAD
No exact match on refs or tags, searching to describe
finished search at dda25569a70226f4782fd2203f0fa5d9f94713e9
annotated 4 1.0.2
traversed 5 commits
+ version=1.0.2-4-gb7fb2b5
но на GitLab.com (GitLab Enterprise Edition 13.1.0-pre eb3529954d4) журнал показывает:
+ git --version
git version 2.26.2
++ git describe --always --debug
describe HEAD
No exact match on refs or tags, searching to describe
+ version=b7fb2b5
и локально на моем Ма c:
+ git --version
git version 2.21.1 (Apple Git-122.3)
+ git describe --always --debug
describe HEAD
No exact match on refs or tags, searching to describe
finished search at dda25569a70226f4782fd2203f0fa5d9f94713e9
annotated 4 1.0.2
traversed 5 commits
1.0.2-4-gb7fb2b5
Итак, хотя я устанавливаю ту же версию git в контейнер docker (используя apk add git
) кажется, что, возможно, способ хранения репо может отличаться между EE и CE GitLab?
Как я могу заставить EE выдать мне этот вывод:
+ version=1.0.2-4-gb7fb2b5
вместо этого вывода:
+ version=b7fb2b5
Обновление от 6 июля 2020 г.
Извините, после дальнейшего расследования я обнаружил, что CE и EE, наверное, тут не причем. Я пробовал использовать общий бегун против моего собственного локального бегуна, и все же я не мог сказать, когда «git описать» даст другой результат. Однако я заметил разницу между двумя сборками одного и того же бегуна, одним конвейером и воссозданием одного и того же задания. Поэтому я вставляю его сюда на случай, если кто-то сможет определить причину root. Сборка 16 (job-6.txt) имеет неправильный вывод. Сборка 17 (job-5.txt) имеет правильный вывод.
diff job-6.txt job-5.txt
3c3
Preparing the "docker" executor
---
Preparing the "docker" executor
5,6d4
< Pulling docker image gitlab/gitlab-runner-helper:x86_64-21cb397c ...
< Using docker image sha256:df1ff93a0e2db810c4900db1681af6327ba8885790dec8aba3226dffd24288d1 for gitlab/gitlab-runner-helper:x86_64-21cb397c ...
9c7
Preparing environment
---
Preparing environment
11c9
Getting source from Git repository
---
Getting source from Git repository
13,14c11
< Initialized empty Git repository in /builds/craftonix/hello-environments/.git/
< Created fresh repository.
---
> Reinitialized existing Git repository in /builds/craftonix/hello-environments/.git/
16,17c13
< * [new ref] refs/pipelines/158092954 -> refs/pipelines/158092954
< * [new branch] master -> origin/master
---
> * [new ref] refs/pipelines/158095014 -> refs/pipelines/158095014
18a15,16
> Removing build-artifacts/
> Removing deploy/
21,23c19,21
Restoring cache
Downloading artifacts
Running before_script and script
---
Restoring cache
Downloading artifacts
Running before_script and script
62,63c60,61
< export CI_BUILD_BEFORE_SHA='b7fb2b549e782b5ecef8eebdcf4c6f401bdb9e20'
< export CI_BUILD_ID='603169809'
---
> export CI_BUILD_BEFORE_SHA='0000000000000000000000000000000000000000'
> export CI_BUILD_ID='603178412'
70c68
< export CI_COMMIT_BEFORE_SHA='b7fb2b549e782b5ecef8eebdcf4c6f401bdb9e20'
---
> export CI_COMMIT_BEFORE_SHA='0000000000000000000000000000000000000000'
87c85
< export CI_JOB_ID='603169809'
---
> export CI_JOB_ID='603178412'
93c91
< export CI_JOB_URL='https://gitlab.com/craftonix/hello-environments/-/jobs/603169809'
---
> export CI_JOB_URL='https://gitlab.com/craftonix/hello-environments/-/jobs/603178412'
97,100c95,98
< export CI_PIPELINE_ID='158092954'
< export CI_PIPELINE_IID='16'
< export CI_PIPELINE_SOURCE='push'
< export CI_PIPELINE_URL='https://gitlab.com/craftonix/hello-environments/-/pipelines/158092954'
---
> export CI_PIPELINE_ID='158095014'
> export CI_PIPELINE_IID='17'
> export CI_PIPELINE_SOURCE='web'
> export CI_PIPELINE_URL='https://gitlab.com/craftonix/hello-environments/-/pipelines/158095014'
158,162c156,163
< Building with GitLab-CI. Build number: 16
< + version=6e97a0f
< + [[ -z 16 ]]
< + echo 'Building with GitLab-CI. Build number: 16'
< + version_string=6e97a0f
---
> finished search at dda25569a70226f4782fd2203f0fa5d9f94713e9
> annotated 5 1.0.2
> traversed 6 commits
> + version=1.0.2-5-g6e97a0f
> + [[ -z 17 ]]
> + echo 'Building with GitLab-CI. Build number: 17'
> Building with GitLab-CI. Build number: 17
> + version_string=1.0.2-5-g6e97a0f
164c165
< + build_number=16
---
> + build_number=17
168,169c169,170
< + echo 'Version : 6e97a0f'
< + echo 'Build : 16'
---
> + echo 'Version : 1.0.2-5-g6e97a0f'
> + echo 'Build : 17'
172,174c173,175
Running after_script
Saving cache
Uploading artifacts for successful job
---
Running after_script
Saving cache
Uploading artifacts for successful job
177,178c178,179
< Uploading artifacts to coordinator... ok id=603169809 responseStatus=201 Created token=crsXNrVb
Job succeeded
---
> Uploading artifacts to coordinator... ok id=603178412 responseStatus=201 Created token=p6-GLXLn
Job succeeded
Обновление от 7 июля 2020 г.
версии gitlab-runner
macOS runner
$ gitlab-runner -v
Version: 13.0.1
Git revision: 21cb397c
Git branch: 13-0-stable
GO version: go1.14.3
Built: 2020-06-08T10:10:54+01:00
OS/Arch: darwin/amd64
Общий бегун GitLab.com
Я не знаю, как найти версию текущего общего бегуна.
Однако та же самая версия раннера 13.0.1 дало 2 разных результата в сборке 16 и 17.