inverse_inc.gitlab_buildpkg_tools

gitlab_buildpkg_tools角色

构建状态

在管道中安装gitalb-buildpkg-tools PPA及其构建的包。

该角色还支持:

  • 安装额外的存储库
  • 安装GPG密钥
  • 安装包以满足管道中构建包的依赖关系
  • 启用或禁用企业版的存储库
  • 设置企业版存储库的优先级(在EL8之前需要yum-priorities包)

要求

该角色设计用于在GitLab管道中启动。也可以在管道外部调用,但需要手动设置一些变量。

角色变量

可用变量列在下面,请查看defaults/main.yml以获取默认值:

gitlab_buildpkg_tools__ppa_enabled

控制是否安装PPA存储库和密钥。

gitlab_buildpkg_tools__ppa_url

PPA的URL。

gitlab_buildpkg_tools__ppa_url_deb

包含Debian部分的PPA URL。

gitlab_buildpkg_tools__ppa_url_centos

包含CentOS部分的PPA URL。

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

GPG密钥的URL或文件列表。

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_NAMECI_PAGES_URL变量。

使用额外存储库和密钥安装包的示例

请参见 用于分子测试的playbook-additional.yml

启用或禁用企业Linux存储库的示例

请参见 用于分子测试的playbook-enable-disable-repos.yml

该角色的测试

该角色无法在GitLab CI管道中完全测试,因为我们希望使用无法覆盖的预定义环境变量(CI_PAGES_URLCI_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.gitlab_buildpkg_tools
许可证
gpl-3.0
下载
126.2k
拥有者