diff --git a/lib/gitlab/qa/release.rb b/lib/gitlab/qa/release.rb index 027dbf103083da81fda8e73a53bea6c3366d11c1..05489b32b25f33db3062fc88a8768000ec15c0dd 100644 --- a/lib/gitlab/qa/release.rb +++ b/lib/gitlab/qa/release.rb @@ -59,6 +59,9 @@ module Gitlab DEFAULT_CANONICAL_TAG = 'nightly' DEV_REGISTRY = Gitlab::QA::Runtime::Env.qa_dev_registry COM_REGISTRY = Gitlab::QA::Runtime::Env.qa_com_registry + CUSTOM_REGISTRY = Gitlab::QA::Runtime::Env.qa_custom_registry + + # CUSTOM_OMNIBUS_MIRROR_REGISTRY_REGEX = %r{\A#{Regexp.escape(CUSTOM_REGISTRY)}/.*omnibus-gitlab-mirror\z} if CUSTOM_REGISTRY InvalidImageNameError = Class.new(RuntimeError) @@ -162,6 +165,12 @@ module Gitlab } elsif omnibus_mirror? || omnibus_security? omnibus_login_params + elsif omnibus_mirror_fork? + { + username: Runtime::Env.gitlab_custom_username, + password: Runtime::Env.gitlab_custom_username_token, + registry: CUSTOM_REGISTRY + } end populate_registry_env_vars(params) @@ -203,6 +212,10 @@ module Gitlab image.start_with?("#{COM_REGISTRY}/gitlab-org/build/omnibus-gitlab-mirror/") end + def omnibus_mirror_fork? + image.start_with?(%r{\A#{Regexp.escape(CUSTOM_REGISTRY)}/.*omnibus-gitlab-mirror\z}o) + end + def omnibus_security? image.start_with?("#{COM_REGISTRY}/gitlab-org/security/omnibus-gitlab/") end diff --git a/lib/gitlab/qa/runtime/env.rb b/lib/gitlab/qa/runtime/env.rb index 0bcaed008036de5cd59bf6a55016ea3fc099a972..30d539ed696638784c2b4fb7c53f4185de65a396 100644 --- a/lib/gitlab/qa/runtime/env.rb +++ b/lib/gitlab/qa/runtime/env.rb @@ -219,6 +219,14 @@ module Gitlab env_var_value_if_defined('GITLAB_DEV_USERNAME') || 'gitlab-qa-bot' end + def gitlab_custom_username + env_var_value_if_defined('GITLAB_CUSTOM_USERNAME') + end + + def gitlab_custom_username_token + env_var_value_if_defined('GITLAB_CUSTOM_ACCESS_TOKEN') + end + def run_id @run_id ||= "gitlab-qa-run-#{Time.now.strftime('%Y-%m-%d-%H-%M-%S')}-#{SecureRandom.hex(4)}" end @@ -432,6 +440,10 @@ module Gitlab env_var_value_if_defined('QA_COM_REGISTRY') || 'registry.gitlab.com' end + def qa_custom_registry + env_var_value_if_defined('QA_CUSTOM_REGISTRY') + end + def gitlab_license_mode env_var_value_if_defined('GITLAB_LICENSE_MODE') end