omnibus-gitlab CI 流水线 使用 CI 环境提供的变量在镜像之间改变构建行为,并将敏感数据排除在存储库之外。

查看下表以获取有关流水线中使用的各种 CI 变量的更多信息。

构建变量

必需:

这些变量是流水线中构建软件包所必需的。

环境变量 描述
AWS_SECRET_ACCESS_KEY 用于在 S3 位置读取/写入构建软件包的账户密钥。
AWS_ACCESS_KEY_ID 用于在 S3 位置读取/写入构建软件包的账户 ID。

可用:

这些附加变量可用于覆盖或启用不同的构建行为。

环境变量 描述
AWS_MAX_ATTEMPTS S3 命令应重试的最大次数。
USE_S3_CACHE 设置任意值后,Omnibus 将在 s3 存储桶中缓存获取的软件源。
CACHE_AWS_ACCESS_KEY_ID 用于读取/写入 s3 存储桶中包含 s3 软件获取缓存的账户 ID。
CACHE_AWS_SECRET_ACCESS_KEY 用于读取/写入 s3 存储桶中包含 s3 软件获取缓存的账户密钥。
CACHE_AWS_BUCKET 软件获取缓存的 S3 存储桶名称。
CACHE_AWS_S3_REGION 用于写入/读取软件获取缓存的 S3 存储桶区域。
CACHE_AWS_S3_ENDPOINT 使用 s3 兼容服务时发送请求的 HTTP 或 HTTPS 端点。
CACHE_S3_ACCELERATE 设置任意值以启用 s3 软件获取缓存使用 s3 加速进行拉取。
SECRET_AWS_SECRET_ACCESS_KEY 用于从安全 s3 存储桶读取 gpg 私有软件包签名密钥的账户密钥。
SECRET_AWS_ACCESS_KEY_ID 用于从安全 s3 存储桶读取 gpg 私有软件包签名密钥的账户 ID。
GPG_PASSPHRASE 使用 gpg 私有软件包签名密钥所需的密码短语。
CE_MAX_PACKAGE_SIZE_MB 基础版软件包允许的最大软件包大小(以 MB 为单位),在我们提醒团队并调查之前。
EE_MAX_PACKAGE_SIZE_MB 企业版软件包允许的最大软件包大小(以 MB 为单位),在我们提醒团队并调查之前。
DEV_GITLAB_SSH_KEY 能够从 dev.gitlab.org 读取存储库的账户的 SSH 私钥。用于 SSH Git 获取。
BUILDER_IMAGE_REGISTRY 用于拉取 CI 作业映像的注册表。
BUILD_LOG_LEVEL Omnibus 构建日志级别。
ALTERNATIVE_SOURCES 切换到 https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/.custom_sources.yml 中列出的自定义源,默认值为 true
OMNIBUS_GEM_SOURCE 非默认远程 URI,用于从中克隆 omnibus gem。
QA_BUILD_TARGET 构建指定的 QA 映像。默认值为 qa
GITLAB_ASSETS_TAG gitlab-org/gitlab 流水线中的 build-assets-image 作业构建的资产映像的标签。默认值为 $GITLAB_REF_SLUGgitlab-rails 版本。
BUILD_ON_ALL_OS 如果设置为 true,则无需使用手动触发即可构建所有 OS 映像。

测试变量

环境变量 描述
RAT_REFERENCE_ARCHITECTURE 由 RAT 作业触发的流水线中使用的参考架构模板。
RAT_FIPS_REFERENCE_ARCHITECTURE 由 RAT:FIPS 作业触发的流水线中使用的参考架构模板。
RAT_PACKAGE_URL 用于由 RAT 作业触发的 RAT 流水线获取常规软件包的 URL。
RAT_FIPS_PACKAGE_URL 用于由 RAT 作业触发的 RAT 流水线获取 FIPS 软件包的 URL。
RAT_TRIGGER_TOKEN RAT 流水线的触发令牌。
RAT_PROJECT_ACCESS_TOKEN 用于触发 RAT 流水线的项目访问令牌。
OMNIBUS_GITLAB_MIRROR_PROJECT_ACCESS_TOKEN 用于构建测试软件包的项目访问令牌。
CI_SLACK_WEBHOOK_URL 用于 Slack 故障通知的 Webhook URL。
DANGER_GITLAB_API_TOKEN 极狐 GitLab API 令牌,用于 dangerbot 向 MR 发表评论。
DOCS_API_TOKEN CI 用于触发文档站点的 review-app 构建的令牌。
MANUAL_QA_TEST 用于决定是否自动播放 qa-subset-test 作业的变量。

发布变量

必需:

这些变量是流水线构建的软件包发布所必需的。

环境变量 描述
STAGING_REPO packages.gitlab.com 上上传发布版本之前,发布版本被上传的存储库。
PACKAGECLOUD_USER 用于将软件包推送到 packages.gitlab.com 的 Packagecloud 用户名。
PACKAGECLOUD_TOKEN 用于将软件包推送到 packages.gitlab.com 的 API 访问令牌。
LICENSE_S3_BUCKET 用于存储发布许可证信息的存储桶,发布在 https://gitlab-org.gitlab.io/omnibus-gitlab/licenses.html 的公共页面上。
LICENSE_AWS_SECRET_ACCESS_KEY 用于读取/写入包含许可证信息的 S3 存储桶的账户密钥。
LICENSE_AWS_ACCESS_KEY_ID 用于读取/写入包含许可证信息的 S3 存储桶的账户 ID。
GCP_SERVICE_ACCOUNT 用于在 Google 对象存储中读取/写入指标。
DOCKERHUB_USERNAME 用于将 Omnibus 极狐GitLab 映像推送到 Docker Hub 的用户名。
DOCKERHUB_PASSWORD 用于将 Omnibus 极狐GitLab 映像推送到 Docker Hub 的密码。
AWS_ULTIMATE_LICENSE_FILE 极狐GitLab 旗舰版许可证,用于旗舰版 AWS AMIs。
AWS_PREMIUM_LICENSE_FILE 极狐GitLab 专业版许可证,用于旗舰版 AWS AMIs。
AWS_AMI_SECRET_ACCESS_KEY 用于发布 AWS AMIs 的读/写访问的账户密钥。
AWS_AMI_ACCESS_KEY_ID 用于发布 AWS AMIs 的读/写访问的账户 ID。
AWS_MARKETPLACE_ARN AWS ARN 允许 AWS Marketplace 访问我们的官方 AMIs。
PACKAGE_PROMOTION_RUNNER_TAG 用于运行软件包推广作业的共享 runner 的标签。

可用:

这些附加变量可用于覆盖或启用不同的构建行为。

环境变量 描述
RELEASE_DEPLOY_ENVIRONMENT 如果当前 ref 是稳定标签,则用于 JihuLab.com 部署器 触发的部署名称。
PATCH_DEPLOY_ENVIRONMENT 如果当前 ref 是候选发布标签,则用于 JihuLab.com 部署器 触发的部署名称。
AUTO_DEPLOY_ENVIRONMENT 如果当前 ref 是自动部署标签,则用于 JihuLab.com 部署器 触发的部署名称。
DEPLOYER_TRIGGER_PROJECT 用于 JihuLab.com 部署器 的存储库的极狐GitLab 项目 ID。
DEPLOYER_TRIGGER_TOKEN 用于各种 JihuLab.com 部署器 环境的触发令牌。
RELEASE_BUCKET 用于推送发布软件包的 S3 存储桶。
BUILDS_BUCKET 用于推送常规分支软件包的 S3 存储桶。
RELEASE_BUCKET_REGION S3 存储桶区域。
RELEASE_BUCKET_S3_ENDPOINT 指定 S3 端点。当采用 S3 兼容存储服务时特别有用。
GITLAB_BUNDLE_GEMFILE 设置 gitlab-rails bundle 所需的 Gemfile 路径。默认值为 Gemfile
GITLAB_COM_PKGS_RELEASE_BUCKET 用于推送发布软件包的 GCS 存储桶。
GITLAB_COM_PKGS_BUILDS_BUCKET 用于推送常规分支软件包的 GCS 存储桶。
GITLAB_COM_PKGS_SA_FILE 用于推送 SaaS 部署发布软件包的服务账户密钥,它必须具有对 pkgs 存储桶的写访问权限。
GITLAB_NAMESPACE 用于在 Dev 实例中覆盖图像 URL,因为顶级名称从 gitlab-org 转变为 gitlab

未知/过时变量

环境变量 描述
VERSION_TOKEN  
TAKEOFF_TRIGGER_TOKEN  
TAKEOFF_TRIGGER_PROJECT  
RELEASE_TRIGGER_TOKEN  
GITLAB_DEV  
GET_SOURCES_ATTEMPTS 极狐GitLab Runner 变量用于控制 runner 尝试获取 Git 存储库的次数。
FOG_REGION  
FOG_PROVIDER  
FOG_DIRECTORY  
AWS_RELEASE_TRIGGER_TOKEN 用于 13.10 之前的版本发布。
ASSETS_AWS_SECRET_ACCESS_KEY  
ASSETS_AWS_ACCESS_KEY_ID  
AMI_LICENSE_FILE  

DockerHub 变量

默认情况下,CI 使用来自 DockerHub 的图像。默认/共享 runner 和分发 runner 使用 DockerHub 镜像以避免达到速率限制。

如果您使用不使用缓存或镜像的自定义 runner,您应该通过设置 DOCKERHUB_PREFIX 为您的代理启用依赖代理,例如 DOCKERHUB_PREFIX: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX},以及 DEPENDENCY_PROXY_LOGIN="true"

容器构建上下文默认使用 gcr DockerHub 镜像。此行为可以通过覆盖 DOCKER_OPTIONSDOCKER_MIRROR 变量来改变。