diff --git a/.gitlab/ci/package-and-test-nightly/main.gitlab-ci.yml b/.gitlab/ci/package-and-test-nightly/main.gitlab-ci.yml index 1d65a8260225792689f7217848a74e58c942b54a..58366f3b434caa4f280e5e7fdcd036a27eec8b5a 100644 --- a/.gitlab/ci/package-and-test-nightly/main.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test-nightly/main.gitlab-ci.yml @@ -199,6 +199,20 @@ gitlab-pages: - if: $QA_SUITES =~ /Test::Instance::GitlabPages/ - !reference [.rules:test:manual, rules] +# ========== git sha256 enabled =========== +git-sha256-repositories: + when: manual + extends: + - .parallel + - .qa + variables: + QA_SCENARIO: Test::Instance::Image + QA_USE_SHA256_REPOSITORY_OBJECT_STORAGE: true + GITLAB_QA_OPTS: "--enable-feature support_sha256_repositories" + rules: + - !reference [.rules:test:qa-parallel, rules] + - if: $QA_SUITES =~ /Test::Instance::All/ + # ========================================== # Post test stage # ========================================== diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml index 6754c0bf6e818c26f3a497cf50c4f775589c0699..50ee368e2fa304af5afb6a3880c7ae45ee27bf72 100644 --- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml @@ -192,6 +192,22 @@ gitaly-transactions-selective-parallel: variables: QA_TESTS: "" +# ========== git sha256 enabled =========== +git-sha256-repositories: + when: manual + extends: + - .parallel + - .qa + parallel: 5 + variables: + QA_SCENARIO: Test::Instance::Image + QA_USE_SHA256_REPOSITORY_OBJECT_STORAGE: true + GITLAB_QA_OPTS: "--enable-feature support_sha256_repositories" + rules: + - !reference [.rules:test:smoke-for-omnibus-mr, rules] + - !reference [.rules:test:feature-flags-set, rules] + - !reference [.rules:test:qa-parallel, rules] + - if: $QA_SUITES =~ /Test::Instance::All/ # ------------------------------------------ # Non parallel jobs # ------------------------------------------ diff --git a/qa/qa/git/repository.rb b/qa/qa/git/repository.rb index 2d0940ef67db2114654813e932edce3e04e3481c..28dfe73d12ec550e33fa6ac5ea5953f9d3ef1557 100644 --- a/qa/qa/git/repository.rb +++ b/qa/qa/git/repository.rb @@ -147,7 +147,9 @@ def merge(branch) end def init_repository - run_git("git init --initial-branch=#{default_branch}") + cmd = "git init --initial-branch=#{default_branch}" + cmd += " --object-format=sha256" if Runtime::Env.use_sha256_repository_object_storage + run_git(cmd) end def pull(repository = nil, branch = nil) diff --git a/qa/qa/resource/project.rb b/qa/qa/resource/project.rb index 0763bfba3298186c323cce597520133469b9e441..215c494c7ce2f3c47cc2f96ea07d01fec51c513b 100644 --- a/qa/qa/resource/project.rb +++ b/qa/qa/resource/project.rb @@ -15,7 +15,8 @@ class Project < Base :github_repository_path, :gitlab_repository_path, :personal_namespace, - :import_wait_duration + :import_wait_duration, + :repository_object_format attr_reader :repository_storage @@ -263,6 +264,9 @@ def api_post_body post_body[:repository_storage] = repository_storage if repository_storage post_body[:template_name] = @template_name if @template_name + # Use experimental SHA256 support https://gitlab.com/groups/gitlab-org/-/epics/794 + post_body[:repository_object_format] = 'sha256' if Runtime::Env.use_sha256_repository_object_storage + post_body end diff --git a/qa/qa/runtime/env.rb b/qa/qa/runtime/env.rb index a77a68b37d99b1879b11a867aa459f935df11e4a..77404dfb24b37a2f43bff0367fa7c08764113e14 100644 --- a/qa/qa/runtime/env.rb +++ b/qa/qa/runtime/env.rb @@ -261,6 +261,10 @@ def use_selenoid? enabled?(ENV['USE_SELENOID'], default: false) end + def use_sha256_repository_object_storage + enabled?(ENV['QA_USE_SHA256_REPOSITORY_OBJECT_STORAGE'], default: false) + end + def save_all_videos? enabled?(ENV['QA_SAVE_ALL_VIDEOS'], default: false) end