1 Обзор
Gitlab — один из широко используемых инструментов управления git-кодом с открытым исходным кодом, и вместе с разработкой были запущены решения ci/cd. Как следует из названия, ci/cd в основном выполняет следующие две задачи.
-
ci (непрерывная сборка)
После того, как код отправлен, он запускает автоматическое модульное тестирование, предварительную компиляцию кода, создание изображения, загрузку изображения и т. д. -
компакт-диск (непрерывный выпуск)
Непрерывный выпуск относится к выпуску встроенной программы в различные среды, такие как предварительная среда и формальная среда.
2. Особенности
gitlab ci/cd имеет следующие функции
- Кроссплатформенная поддержка
Пока платформа, поддерживающая язык go, может выполнять на нем ci, она в основном охватывает большинство операционных систем. - Многоязычная поддержка
Время сборки запускается скриптом, поэтому поддерживаются практически все языки. - Pipeline
Рабочий процесс может быть сформирован через различные этапы - поддержка докеров
Можно создавать образы Docker, а в Kubernetes также поддерживаются триггеры.
Все функции подробно описаны в:Ссылка на сайт
3. Структура
gitlab ci/cd дополняется независимой программой запуска.Программа запуска написана на языке go, поэтому она может быть хорошо кросс-платформенной.Обычно программу запуска можно развернуть на любом сервере, отличном от сервера gitlab, чтобы избежать влияние на сервер gitlab.
См. проект бегуна по адресу:Ссылка на сайт
4. Процесс gitlab ci/cd
gitlab запускает конвейер, помещая файл .gitlab-ci.yml в корневой каталог проекта, а запись файла следует синтаксису yml, поэтому в целом gitlab ci/cd требуется всего два шага:
- Напишите файл .gitlab-ci.yml и поместите его в корневой каталог проекта.
- Настройте бегун gitlab. После завершения соответствующий этап будет автоматически выполнен согласно условиям триггера gitlab-ci.yml при отправке кода.
4.1 файл gitlab-ci.yml
stages:
- test
- build
- deploy
test:
stage: test
script: echo "Running tests"
only:
- tags
build:
stage: build
script: echo "Building the app"
only:
- tags
deploy_staging:
stage: deploy
script:
- echo "Deploy to staging server"
environment:
name: staging
url: https://staging.example.com
only:
- tags
deploy_prod:
stage: deploy
script:
- echo "Deploy to production server"
environment:
name: production
url: https://example.com
when: manual
only:
- tags
Как и выше, это метод записи файла .gitlab-ci.yml с функцией ci/cd,
Для конкретного написания .gitlab-ci.yml и значения ключевых слов см.:Ссылка на сайт
Чтобы узнать, почему gitlab использует .gitlab-ci.yml, см.:Ссылка на сайт
4.2 конфигурация бегунка
Конфигурация бегуна в основном делится на три этапа:
-
Первая установка бегуна Сценарий установки см.
/ССсылка на сайт -
Затем зарегистрируйте бегун на gitlab
Ссылка на сайт -
Дополнительные сведения о конфигурации см.
Ссылка на сайт
5. Резюме
В целом, gitlab-ci может в принципе выполнить полную сборку и выпуск, но есть и некоторые недостатки:
1. В публикующей части, какой сервер нужно развернуть в файл .gitlab-ci, кроме того, если раннер развернут напрямую, машина, на которой находится раннер, должна иметь прямой или косвенный доступ ко всем опубликованным машинам, которые существует здесь Определенные проблемы безопасности.
2. Нет аудита для выпуска программы.Для небольших компаний эта проблема может быть не заметной, но когда команда НИОКР расширяется и бизнес компании увеличивается, управление полномочиями и аудит процесса выпуска очень важны.