gitlab_buildpkg_tools
Роль gitlab_buildpkg_tools
Установите gitlab-buildpkg-tools PPA и пакеты, созданные с помощью gitlab-buildpkg-tools в пайплайне.
Эта роль также поддерживает:
- установку дополнительных репозиториев
- установку GPG ключей
- установку пакетов для удовлетворения зависимостей собранных пакетов в пайплайне
- активацию или деактивацию репозиториев для EL
- установку приоритета для EL репозиториев (необходим пакет yum-priorities перед EL8)
Требования
Роль предназначена для запуска в пайплайне GitLab. Она может быть вызвана вне пайплайна, но вам нужно будет установить некоторые переменные вручную.
Переменные роли
Доступные переменные перечислены ниже, проверьте defaults/main.yml
для значений по умолчанию:
gitlab_buildpkg_tools__ppa_enabled
Управляет тем, следует ли устанавливать репозиторий и ключ PPA.
gitlab_buildpkg_tools__ppa_url
URL PPA.
gitlab_buildpkg_tools__ppa_url_deb
URL PPA с Debian частью.
gitlab_buildpkg_tools__ppa_url_centos
URL PPA с CentOS частью.
gitlab_buildpkg_tools__deb_ppa
Параметры репозитория Debian PPA.
gitlab_buildpkg_tools__rpm_ppa
Параметры RPM PPA репозитория.
gitlab_buildpkg_tools__deb_deps_pkgs
Список зависимостей Debian для установки репозиториев.
gitlab_buildpkg_tools__deb_deps_pkgs_state
Состояние зависимостей Debian.
gitlab_buildpkg_tools__deb_keys
Список GPG ключей URL.
gitlab_buildpkg_tools__deb_combined_keys
Список GPG ключей для установки (PPA + дополнительные).
gitlab_buildpkg_tools__deb_sources_dir
Директория Debian для хранения файлов репозиториев.
gitlab_buildpkg_tools__deb_deps_repos
Список дополнительных репозиториев Debian.
gitlab_buildpkg_tools__deb_combined_repos
Список репозиториев Debian для установки.
gitlab_buildpkg_tools__deb_pkgs
Список пакетов Debian для установки.
gitlab_buildpkg_tools__deb_pkgs_state
Состояние пакетов Debian для установки.
gitlab_buildpkg_tools__rpm_deps_pkgs
Список зависимостей CentOS для установки репозиториев.
gitlab_buildpkg_tools__rpm_deps_pkgs_state
Состояние зависимостей CentOS.
gitlab_buildpkg_tools__rpm_keys
Список URL или файлов GPG ключей.
gitlab_buildpkg_tools__rpm_combined_keys
Список GPG ключей для установки (PPA + дополнительные).
gitlab_buildpkg_tools__rpm_deps_repos
Список дополнительных репозиториев CentOS.
gitlab_buildpkg_tools__rpm_enabled_repos
Список репозиториев CentOS для активации/деактивации.
gitlab_buildpkg_tools__rpm_combined_repos
Список репозиториев CentOS для установки.
gitlab_buildpkg_tools__rpm_pkgs
Список пакетов CentOS для установки.
gitlab_buildpkg_tools__rpm_pkgs_state
Состояние пакетов CentOS для установки.
Переменные окружения для установки в пайплайне (см. ниже):
CI_PROJECT_NAME
CI_PAGES_URL
DEB_PACKAGES_NAME
RPM_PACKAGES_NAME
Ограничения
Ограничения Debian
- GPG ключи нужно добавлять по URL
- Пакеты Debian нужно устанавливать по именам
Переменные окружения в .gitlab-ci.yml
В файле .gitlab-ci.yml
вы можете определять переменные окружения, такие как DEB_PACKAGES_NAME:
, но эти переменные не могут быть чистым списком YAML или словарем. Поэтому необходимо использовать встроенный синтаксис YAML.
Примеры
Пример установки пакетов внутри CI
.gitlab-ci.yml
:
variables:
DEB_PACKAGES_NAME: "['apt-add-gitlab', 'gitlab-buildpkg-tools']"
RPM_PACKAGES_NAME: "['yum-add-gitlab', 'gitlab-buildpkg-tools']"
CI_PROJECT_NAME: gitlab-buildpkg-tools
CI_PAGES_URL: http://orange-opensource.gitlab.io/gitlab-buildpkg-tools
Конечно, если вы используете этот плейбук в пайплайне, где используется gitlab-buildpkg-tools
, вам не нужно определять переменные CI_PROJECT_NAME
и CI_PAGES_URL
.
- пример плейбука: смотрите playbook.yml для тестов молекул
Пример установки пакетов с дополнительными репозиториями и ключами
Смотрите playbook-additional.yml для тестов молекул.
Пример активации или деактивации репозиториев для Enterprise Linux
Смотрите playbook-enable-disable-repos.yml для тестов молекул.
Тестирование этой роли
Эта роль не может быть полностью протестирована в пайплайне GitLab, потому что мы хотим использовать предопределенные переменные окружения, которые не могут быть переопределены (CI_PAGES_URL
и CI_PROJECT_NAME
). По этой причине мы используем Travis CI для тестирования этой роли.
Локальные тесты
Предварительные условия:
- molecule[docker]
- ansible
- docker
Примеры:
$ MOLECULE_DISTRO=debian11 \
CI_PROJECT_NAME=gitlab-buildpkg-tools \
CI_PAGES_URL=http://orange-opensource.gitlab.io/gitlab-buildpkg-tools \
MOLECULE_PLAYBOOK=playbook-ppa-and-additional.yml molecule test
$ MOLECULE_DISTRO=centos8 \
CI_PROJECT_NAME=gitlab-buildpkg-tools \
CI_PAGES_URL=http://orange-opensource.gitlab.io/gitlab-buildpkg-tools \
MOLECULE_PLAYBOOK=playbook-ppa-and-additional.yml molecule test
Лицензия
GPL-3.0
Информация об авторе
Inverse inc info@inverse.ca
Install packages from a gitlab-buildpkg-tools PPA
ansible-galaxy install inverse-inc/ansible-role-gitlab-buildpkg-tools