CodeQuality, используя оператор `include` для GitLab v11.11 и более поздних версий? - PullRequest
5 голосов
/ 23 апреля 2019

Сегодня, пытаясь настроить CodeQuality в моем .gitlab-ci.yml (на gitlab-ee 11.10, gitlab-runner 11.10), я столкнулся со следующей проблемой:

Первое, что нужно документация GitLab говорит вам, что это можно установить с помощью DockerInDocker gitlab-runner и одной строки конфигурации:

include:
  - template: Code-Quality.gitlab-ci.yml

Существует также отказ от ответственности, что это поддерживается в gitlab 11.11 или позже, что странно, потому что по состоянию на 23 апреля 2019 года последняя версия - 11.10. Не уверен, что это опечатка или они публикуют документацию до того, как релизы станут доступны.

Я пытался следовать этой инструкции, но многое неясно:

  1. Я понял, что оператор include должен быть добавлен после определения stages для проверки синтаксиса.

  2. A code_quality задание обнаружилось и прошло:

Однако позже из этого ответа я узнал, что мне нужно создать .codeclimate.yml файл и каким-то образом добавить его .gitlab-ci.yml. Этот ответ содержит две ссылки, которые можно использовать, чтобы понять, как работать с CodeClimate, но я не нашел способа добавить к gitlab-ci.yml. Я нашел некоторый пример на этой странице, связанной с gitlab НО это не использует оператор include, описанный в документации.

  1. Я не могу найти отчет о выполненной работе code_quaity. В этом ответе кто-то указал, что отчет доступен для скачивания только по запросу на слияние для gitlab-ee. Однако это нецелесообразно, так как тогда разработчикам придется запускать спам-запрос на слияние, чтобы посмотреть, не ухудшился ли их код.

gitlab-ci.yml, который я использую, выглядит примерно так:

image: docker:stable

variables:
  ARTEFACT: my_app
  VERSION: 0.1
  DOCKER_HOST: tcp://docker:2375/
  DOCKER_DRIVER: overlay2

services:
  - docker:dind

before_script:
  - docker info

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - docker build -t $ARTEFACT:$VERSION-DEV .

test:
  stage: test
  script:
    - docker run --rm --env MODE=DEV $ARTEFACT:$VERSION-DEV ./my_test.sh

include:
  - template: Code-Quality.gitlab-ci.yml

В идеале это должно быть просто: выяснить, как использовать CodeClimate для приложений на Python, а затем добавить его конфигурацию в репозиторий и сослаться на gitlab-ci.yml правильно? Но как сделать ссылку. Есть ли где-нибудь понятная документация?

РЕДАКТИРОВАТЬ: теперь я знаю, что задания независимы, и что я должен изменить этап build в .gitlab-ci.yml выше, чтобы выдвинуть образ сборки туда, где другие задания могут получить. Тем не менее, я думаю, что это не помогает решить проблему CodeQuality.

...