diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 7efcc4b58a36fce578bb034ac35ac4764359d696..fd4047373d7b57235f26e069a715e16c6ca44dbd 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -1223,7 +1223,6 @@ rspec-ee system pg15 es8: extends: - .rails:rules:rspec fail-fast stage: test - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"] script: - !reference [.base-script, script] - rspec_fail_fast "${MATCHING_TESTS_PATH}" "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~zoekt --tag ~click_house" @@ -1298,7 +1297,10 @@ fail-pipeline-early: extends: - .rails:rules:rerun-previous-failed-tests stage: test - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-previous-failed-tests"] + needs: + - !reference [.rspec-base-needs, needs] + - job: "compile-test-assets" + - job: "detect-previous-failed-tests" script: - !reference [.base-script, script] - rspec_rerun_previous_failed_tests "${PREVIOUS_FAILED_TESTS_FILE}" diff --git a/.gitlab/ci/rails/shared.gitlab-ci.yml b/.gitlab/ci/rails/shared.gitlab-ci.yml index 3194ac0c26f4c917020af5d199805860a3cdf044..2492b8f69ddce59d2fabbe3ee9a47c492c306e6e 100644 --- a/.gitlab/ci/rails/shared.gitlab-ci.yml +++ b/.gitlab/ci/rails/shared.gitlab-ci.yml @@ -56,10 +56,18 @@ include: variables: GITALY_PRAEFECT_WITH_DB: '1' +.rspec-base-needs: + needs: + - job: "clone-gitlab-repo" + optional: true # Optional so easier to switch in between + - job: "setup-test-env" + - job: "retrieve-tests-metadata" + .rspec-base: extends: - .rails-job-base - .base-artifacts + # - .repo-from-artifacts # Comment this to clone instead of using artifacts stage: test variables: RUBY_GC_MALLOC_LIMIT: 67108864 @@ -69,8 +77,7 @@ include: SUCCESSFULLY_RETRIED_TEST_EXIT_CODE: 137 EVENT_PROF: "sql.active_record" needs: - - job: "setup-test-env" - - job: "retrieve-tests-metadata" + - !reference [.rspec-base-needs, needs] - job: "compile-test-assets" - job: "detect-tests" optional: true @@ -163,8 +170,7 @@ include: - .as-if-foss - .use-pg14 needs: - - job: "setup-test-env" - - job: "retrieve-tests-metadata" + - !reference [.rspec-base-needs, needs] - job: "compile-test-assets as-if-foss" - job: "detect-tests" optional: true diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index a101901d57b3920e9d83971f380baccbcff217d4..934ddd2bffe3dd40f045f7c2e3bce182ca9418c5 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -43,6 +43,28 @@ dont-interrupt-me: script: - echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible." +clone-gitlab-repo: + extends: + - .absolutely-predictive-job + rules: [when: never] # Uncomment this to clone instead of using artifacts + stage: sync + script: + - echo OK + variables: + GIT_STRATEGY: clone + artifacts: + paths: + - '*' + expire_in: '12 hours' + +.repo-from-artifacts: + variables: + GIT_STRATEGY: none + needs: + # If the job extending this also defines `needs`, make sure to update + # its `needs` to include `clone-gitlab-repo` because it'll be overridden. + - clone-gitlab-repo + gitlab_git_test: extends: - .predictive-job