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_NAME
和CI_PAGES_URL
变量。
- 示例剧本:请参见 用于分子测试的playbook.yml
使用额外存储库和密钥安装包的示例
请参见 用于分子测试的playbook-additional.yml。
启用或禁用企业Linux存储库的示例
请参见 用于分子测试的playbook-enable-disable-repos.yml。
该角色的测试
该角色无法在GitLab CI管道中完全测试,因为我们希望使用无法覆盖的预定义环境变量(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