Представлено в предыдущих статьях:
Непрерывная интеграция GitLab CI — установка и регистрация GitLab Runner
Непрерывная интеграция GitLab CI — GitLab Runner
После настройки среды вы можете официально начать использовать GitLab CI для интеграции проекта.В качестве примера возьмите проект Java, используйте Gradle в качестве инструмента автоматического построения для проекта и используйте инструмент Gradle для проверки качества кода.Подробнее, видетьПроверка качества кода Java с помощью Gradle.
.gitlab-ci.yml
Gitlab CI использует файлы YAML (.gitlab-ci.yml) для управления конфигурацией проекта. Этот файл хранится в корневом каталоге репозитория проекта и определяет способ сборки проекта.
YAML — это легко читаемый формат для выражения последовательностей данных. YAML ссылается на многие другие языки, включая: C, Python, Perl, и черпает вдохновение из XML, формата данных для электронной почты. YAML — это рекурсивная аббревиатура от «YAML — это не язык разметки» (YAML — это не язык разметки). Когда этот язык был разработан, YAML на самом деле означало: «Еще один язык разметки» (все еще язык разметки), но чтобы подчеркнуть, что этот язык ориентирован на данные, а не на разметку, он использует обратное переименование аббревиатуры. --- Википедия
Файл .gitlab-ci.yml определяет ряд задач с описаниями ограничений.Эти задачи начинаются с названия задачи и включаютscriptраздел, пример .gitlab-ci.yml:
stages:
- unit-test
UnitTest:
stage: unit-test
tags:
- spring-sample
script:
- gradle test
- gradle jacocoTestReport
- gradle sonarqube
when: always
Значение полей в скрипте подробно объясняется ниже
Парсинг скрипта сборки
stagesОпределите фазы, которые можно вызвать, по умолчанию это сборка, тестирование и развертывание, порядок выполнения:
- Задания одного этапа могут выполняться параллельно.
- Задание следующего этапа будет разработано и выполнено после успешного выполнения задания предыдущего этапа.
Стадия определяется здесь:unit-test.
следующееUnitTestэто определенная задача, которая находится в стадииunit-testпри исполнении.tagsУказывает gitlab-runner, который ему нужно выполнить, здесь тегspring-sampleВыполняется в теге.scriptПредставляет сценарий, который необходимо выполнить. Сценарий, выполняемый в этом примере, включает три шага:
- запускать тесты градиента
- Выполнять проверки покрытия юнит-тестами
- Запустите sonarqube для проверки качества кода
whenОпределите, когда выполнять задачу, которая может быть on_success, on_failure, всегда (запускается при каждом обновлении кода) или вручную (запускается вручную).
Кроме того, наиболее часто используемые поля:before_scriptИспользуется для определения команд, запускаемых перед всеми заданиями, включая задачи развертывания и т. д., может быть массивом или многострочной строкой.after_scriptИспользуется для определения команд, запускаемых после всех заданий. Это должен быть массив или многострочная строка
Например:
job:
before_script:
- execute this instead of global before script
script:
- my command
after_script:
- execute this after my script
cacheИспользуется для указания файлов или каталогов, которые необходимо кэшировать, например:
job1:
script: test
cache:
paths:
- binaries/
- .config
Дополнительные поля могут ссылаться на официальную документацию.
Запустите GitLab CI
После завершения настройки, когда вы отправляете код в репозиторий, вы можете увидеть связанные задания в CI/CD:
Введя детали, вы можете увидеть подробную информацию о построении проекта, и вы можете отследить причину ошибки по сгенерированному журналу.Причина ошибки здесь в том, что в gitlab-ruuner не установлена среда gradle.После gradle среда установлена, выполняется задача сборки.Ubuntu Установить Java JDK и Gradle
Цитировать
YAML: zh.wikipedia.org/wiki/YAMLСправочник по настройке конвейера GitLab CI/CD:docs.gitlab.com/ee/ci/yaml/Настройте задачи через .gitlab-ci.yml:GitHub.com/fen like that/git to…