From 20202a3048e03cdf0f5d073100f916bfbb152cad Mon Sep 17 00:00:00 2001 From: John McDonnell <jmcdonnell@gitlab.com> Date: Thu, 25 Jul 2024 10:25:25 +0000 Subject: [PATCH] Only allow manual runs of sha256 pipelines We are aware of a number of known failures in these pipelines at the time of writing. In order to avoid noisy failures, let's only run these jobs on-demand until such time that the known failures are addressed. --- .../package-and-test-nightly/main.gitlab-ci.yml | 14 ++++++++++++++ .gitlab/ci/package-and-test/main.gitlab-ci.yml | 16 ++++++++++++++++ qa/qa/git/repository.rb | 4 +++- qa/qa/resource/project.rb | 6 +++++- qa/qa/runtime/env.rb | 4 ++++ 5 files changed, 42 insertions(+), 2 deletions(-) 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 1d65a82602257..58366f3b434ca 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 6754c0bf6e818..50ee368e2fa30 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 2d0940ef67db2..28dfe73d12ec5 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 0763bfba32981..215c494c7ce2f 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 a77a68b37d99b..77404dfb24b37 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 -- GitLab