Gitlab - Как добавить значок на основе конвейера заданий - PullRequest
0 голосов
/ 07 сентября 2018

Моя цель - показать значки (например: enter image description here) на основе результатов конвейера.

У меня есть частный экземпляр gitlab ce omnibus со следующим .gitlab-ci.yml:

image: python:3.6

stages:
  - lint
  - test

before_script:
  - python -V
  - pip install pipenv
  - pipenv install --dev

lint:
  stage: lint
  script:
  - pipenv run pylint --output-format=text --load-plugins pylint_django project/ | tee pylint.txt
  - score=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' pylint.txt)
  - echo "Pylint score was $score"
  - ls
  - pwd
  - pipenv run anybadge --value=$score --file=pylint.svg pylint
  artifacts:
    paths:
      - pylint.svg

test:
  stage: test
  script:
  - pipenv run python manage.py test

Поэтому я подумал, что сохраню изображение в артефактах задания на ворс и отобразлю его с помощью функции значка.

Но я сталкиваюсь со следующей проблемой: при просмотре https://example.com/[group]/[project]/-/jobs/[ID]/artifacts/file/pylint.svg, вместо значка появляется следующее сообщение:

The image could not be displayed because it is stored as a job artifact. You can download it instead.

И в любом случае, я чувствую, что это неправильный путь, потому что даже если бы я мог получить изображение, похоже, не было бы способа получить изображение с последней работы, так как URL-адрес gitlab для значков поддерживает только изображения %{project_path}, %{project_id}, %{default_branch}, %{commit_sha}

Итак, как добавить значок в проект gitlab на основе svg, сгенерированного из результатов в конвейере gitlab?

Полагаю, я могу нажать на папку .badge, но это не похоже на чистое решение.

1 Ответ

0 голосов
/ 02 декабря 2018

Вы действительно можете получить артефакт (ы) для последней работы (см. Документацию здесь ), но хитрость заключается в том, что вам нужно использовать немного другой URL:

https://example.com/[group]/[project]/-/jobs/artifacts/[ref]/raw/pylint.svg?job=lint

где [ref] - ссылка на вашу ветку / коммит / тег.

Говоря о метках-заполнителях, доступных в Gitlab, вы можете поместить %{default_branch} или %{commit_sha} в [ref]. Это не позволит вам получить правильный значок для каждой ветви, но по крайней мере ваша ветвь по умолчанию получит ее.

Обратите также внимание, что ?job=lint параметр запроса обязателен, без него URL не будет работать.

...