Почему вывод «git описать» отличается от одной сборки к другой? - PullRequest
2 голосов
/ 17 июня 2020

У меня есть локальное 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.

...