From 7dcb7cc27146fb26ed4413484610f25659a8b58a Mon Sep 17 00:00:00 2001 From: Prucek Date: Wed, 6 May 2026 16:12:41 +0200 Subject: [PATCH 1/4] prowgen: compute sparse checkout files for image builds Replace skipCloning() with sparseCheckoutFiles() that computes the minimal set of files needed for image builds: .ci-operator.yaml (if from_repository is set) plus all Dockerfile paths from image configs. When sparse checkout files are available, set them on DecorationConfig instead of skipping cloning entirely. This allows prow to checkout only the files needed for image builds, significantly reducing clone time for large repositories. Co-Authored-By: Claude Opus 4.6 --- ...rConfigToProwYaml_Custom_test_timeout.yaml | 3 +- ...is_YAML_and_it_is_correctly_processed.yaml | 3 +- ...._Existing_job_should_not_be_changed..yaml | 3 +- ...resubmit__pre_post_submit_images_jobs.yaml | 3 +- ...rConfigToProwYaml_Custom_test_timeout.yaml | 6 +- ...is_YAML_and_it_is_correctly_processed.yaml | 6 +- ...._Existing_job_should_not_be_changed..yaml | 6 +- ...resubmit__pre_post_submit_images_jobs.yaml | 6 +- pkg/prowgen/jobbase.go | 62 +++++++++++++------ ...auses_promote_job_with_unique_targets.yaml | 6 +- ...bs_promotion_postsubmit_and_periodic_.yaml | 5 +- ...d_test_with_timeout_and_no_decoration.yaml | 2 + ..._main__does_not_have_no_builds__label.yaml | 3 +- ...e_job_with_cloning__including_podspec.yaml | 2 + 14 files changed, 82 insertions(+), 34 deletions(-) diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml index 4514191a878..e200ca15e86 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml @@ -25,7 +25,8 @@ postsubmits: - ^branch$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci.openshift.io/generator: prowgen diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml index 4514191a878..e200ca15e86 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml @@ -25,7 +25,8 @@ postsubmits: - ^branch$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci.openshift.io/generator: prowgen diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml index fba680a12c6..e834c017e4a 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml @@ -27,7 +27,8 @@ postsubmits: - ^branch$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci-operator.openshift.io/variant: rhel diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml index 31f6dbd2268..d254ae0be17 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_postsubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml @@ -6,7 +6,8 @@ postsubmits: - ^branch$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci.openshift.io/generator: prowgen diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml index 8764b174420..dd238cb0b01 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Custom_test_timeout.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -62,7 +63,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile timeout: 8h0m0s labels: ci.openshift.io/generator: prowgen diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml index 1ff98f138a9..1e35900901f 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Input_is_YAML_and_it_is_correctly_processed.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -62,7 +63,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml index 626df831fd4..e502a8ddbaf 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_Using_a_variant_config__one_test_and_images__one_existing_job._Expect_one_presubmit__pre_post_submit_images_jobs._Existing_job_should_not_be_changed..yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/rhel-images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: rhel ci.openshift.io/generator: prowgen @@ -64,7 +65,8 @@ presubmits: context: ci/prow/rhel-unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: rhel ci.openshift.io/generator: prowgen diff --git a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml index 1ff98f138a9..1e35900901f 100644 --- a/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml +++ b/cmd/ci-operator-prowgen/testdata/zz_fixture_presubmit_TestFromCIOperatorConfigToProwYaml_one_test_and_images__no_previous_jobs._Expect_test_presubmit__pre_post_submit_images_jobs.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -62,7 +63,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/pkg/prowgen/jobbase.go b/pkg/prowgen/jobbase.go index b30f9c59cf5..ec865d33757 100644 --- a/pkg/prowgen/jobbase.go +++ b/pkg/prowgen/jobbase.go @@ -1,9 +1,11 @@ package prowgen import ( + "path" "time" - utilpointer "k8s.io/utils/pointer" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/utils/ptr" prowv1 "sigs.k8s.io/prow/pkg/apis/prowjobs/v1" prowconfig "sigs.k8s.io/prow/pkg/config" @@ -20,22 +22,40 @@ type prowJobBaseBuilder struct { testName string } -// If any included buildRoot uses from_repository we must not skip cloning -func skipCloning(configSpec *cioperatorapi.ReleaseBuildConfiguration) bool { - buildRoots := configSpec.BuildRootImages - if buildRoots == nil { - buildRoots = make(map[string]cioperatorapi.BuildRootImageConfiguration) - } - if configSpec.BuildRootImage != nil { - buildRoots[""] = *configSpec.BuildRootImage +func fromRepositorySet(configSpec *cioperatorapi.ReleaseBuildConfiguration) bool { + if configSpec.BuildRootImage != nil && configSpec.BuildRootImage.FromRepository { + return true } - for _, buildRoot := range buildRoots { + for _, buildRoot := range configSpec.BuildRootImages { if buildRoot.FromRepository { - return false + return true } } + return false +} - return true +func sparseCheckoutFiles(configSpec *cioperatorapi.ReleaseBuildConfiguration) []string { + files := sets.New[string]() + if fromRepositorySet(configSpec) { + files.Insert(cioperatorapi.CIOperatorInrepoConfigFileName) + } + for _, image := range configSpec.Images.Items { + if image.DockerfileLiteral != nil { + continue + } + if image.Ref != "" { + continue + } + dockerfilePath := image.DockerfilePath + if dockerfilePath == "" { + dockerfilePath = "Dockerfile" + } + if image.ContextDir != "" { + dockerfilePath = path.Join(image.ContextDir, dockerfilePath) + } + files.Insert(dockerfilePath) + } + return sets.List(files) } func hasNoBuilds(c *cioperatorapi.ReleaseBuildConfiguration, info *ProwgenInfo) bool { @@ -63,7 +83,8 @@ func NewProwJobBaseBuilder(configSpec *cioperatorapi.ReleaseBuildConfiguration, Agent: string(prowv1.KubernetesAgent), Labels: map[string]string{}, UtilityConfig: prowconfig.UtilityConfig{ - Decorate: utilpointer.Bool(true), + Decorate: ptr.To(true), + DecorationConfig: &prowv1.DecorationConfig{}, }, }, } @@ -71,10 +92,15 @@ func NewProwJobBaseBuilder(configSpec *cioperatorapi.ReleaseBuildConfiguration, private := info.Config.Private || (configSpec.Prowgen != nil && configSpec.Prowgen.Private) expose := info.Config.Expose || (configSpec.Prowgen != nil && configSpec.Prowgen.Expose) - if skipCloning(configSpec) { - b.base.UtilityConfig.DecorationConfig = &prowv1.DecorationConfig{SkipCloning: utilpointer.Bool(true)} - } else if private { - b.base.UtilityConfig.DecorationConfig = &prowv1.DecorationConfig{OauthTokenSecret: &prowv1.OauthTokenSecret{Key: cioperatorapi.OauthTokenSecretKey, Name: cioperatorapi.OauthTokenSecretName}} + sparseFiles := sparseCheckoutFiles(configSpec) + shouldSkipCloning := len(sparseFiles) == 0 + if shouldSkipCloning { + b.base.UtilityConfig.DecorationConfig.SkipCloning = ptr.To(true) + } else { + b.base.UtilityConfig.DecorationConfig.SparseCheckoutFiles = sparseFiles + if private { + b.base.UtilityConfig.DecorationConfig.OauthTokenSecret = &prowv1.OauthTokenSecret{Key: cioperatorapi.OauthTokenSecretKey, Name: cioperatorapi.OauthTokenSecretName} + } } if len(info.Variant) > 0 { @@ -93,7 +119,7 @@ func NewProwJobBaseBuilder(configSpec *cioperatorapi.ReleaseBuildConfiguration, b.PodSpec.Add(Variant(info.Variant)) if private { - b.PodSpec.Add(GitHubToken(!skipCloning(configSpec))) + b.PodSpec.Add(GitHubToken(!shouldSkipCloning)) } if configSpec.CanonicalGoRepository != nil { diff --git a/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_Promotion_configuration_causes_promote_job_with_unique_targets.yaml b/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_Promotion_configuration_causes_promote_job_with_unique_targets.yaml index 1346fb097ef..b28058911ff 100644 --- a/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_Promotion_configuration_causes_promote_job_with_unique_targets.yaml +++ b/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_Promotion_configuration_causes_promote_job_with_unique_targets.yaml @@ -6,7 +6,8 @@ postsubmits: - ^branch$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" max_concurrency: 1 @@ -69,7 +70,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-organization-repository-branch-images diff --git a/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_promotion_postsubmit_and_periodic_.yaml b/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_promotion_postsubmit_and_periodic_.yaml index d38db480bbc..565b15288fc 100644 --- a/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_promotion_postsubmit_and_periodic_.yaml +++ b/pkg/prowgen/testdata/zz_fixture_TestGenerateJobs_promotion_postsubmit_and_periodic_.yaml @@ -3,11 +3,14 @@ periodics: cron: 5 4 * * * decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: branch org: organization repo: repository + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" max_concurrency: 1 diff --git a/pkg/prowgen/testdata/zz_fixture_TestNewProwJobBaseBuilderForTest_simple_container_based_test_with_timeout_and_no_decoration.yaml b/pkg/prowgen/testdata/zz_fixture_TestNewProwJobBaseBuilderForTest_simple_container_based_test_with_timeout_and_no_decoration.yaml index 0dc223f89e2..ca9663e739b 100644 --- a/pkg/prowgen/testdata/zz_fixture_TestNewProwJobBaseBuilderForTest_simple_container_based_test_with_timeout_and_no_decoration.yaml +++ b/pkg/prowgen/testdata/zz_fixture_TestNewProwJobBaseBuilderForTest_simple_container_based_test_with_timeout_and_no_decoration.yaml @@ -1,6 +1,8 @@ agent: kubernetes decorate: true decoration_config: + sparse_checkout_files: + - .ci-operator.yaml timeout: 1s name: prefix-ci-o-r-b-simple spec: diff --git a/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_job_with_image_builds_in_of_openshift_release_main__does_not_have_no_builds__label.yaml b/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_job_with_image_builds_in_of_openshift_release_main__does_not_have_no_builds__label.yaml index 2dc0ec33db9..4d0dcac96b7 100644 --- a/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_job_with_image_builds_in_of_openshift_release_main__does_not_have_no_builds__label.yaml +++ b/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_job_with_image_builds_in_of_openshift_release_main__does_not_have_no_builds__label.yaml @@ -1,5 +1,6 @@ agent: kubernetes decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile name: default-ci-openshift-release-main- diff --git a/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_private_job_with_cloning__including_podspec.yaml b/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_private_job_with_cloning__including_podspec.yaml index a3d0eb91515..811d3faac5f 100644 --- a/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_private_job_with_cloning__including_podspec.yaml +++ b/pkg/prowgen/testdata/zz_fixture_TestProwJobBaseBuilder_private_job_with_cloning__including_podspec.yaml @@ -4,6 +4,8 @@ decoration_config: oauth_token_secret: key: oauth name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - .ci-operator.yaml hidden: true name: default-ci-vorg-vrepo-vbranch- spec: From b4b668132732bf87374668684f496d1de9cb23a2 Mon Sep 17 00:00:00 2001 From: Prucek Date: Wed, 6 May 2026 16:12:49 +0200 Subject: [PATCH 2/4] rehearse: clear sparse checkout from rehearsal DecorationConfig MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a rehearsal job's primary ref (openshift/release) differs from the target repo, CompletePrimaryRefs propagates SparseCheckoutFiles from DecorationConfig to the extra ref (the original repo). However, the DecorationConfig.SparseCheckoutFiles remains set and prow applies it to the primary ref too, causing the release repo to be sparse-checked out — which breaks the clone with "unrelated histories" errors. Clear SparseCheckoutFiles from DecorationConfig after setting up the extra ref, since the files are already on the extra ref via CompletePrimaryRefs. Co-Authored-By: Claude Opus 4.6 --- pkg/rehearse/jobs.go | 3 +++ test/integration/pj-rehearse/expected.yaml | 25 ++++++++++++++++------ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/pkg/rehearse/jobs.go b/pkg/rehearse/jobs.go index 9064aba2e02..1dcee78b022 100644 --- a/pkg/rehearse/jobs.go +++ b/pkg/rehearse/jobs.go @@ -166,6 +166,9 @@ func makeRehearsalPresubmit(source *prowconfig.Presubmit, repo string, refs *pja rehearsal.CloneURI = "" rehearsal.SkipSubmodules = false rehearsal.CloneDepth = 0 + if rehearsal.DecorationConfig != nil { + rehearsal.DecorationConfig.SparseCheckoutFiles = nil + } } ghContext += repo + "/" } diff --git a/test/integration/pj-rehearse/expected.yaml b/test/integration/pj-rehearse/expected.yaml index 07d4e1c2566..5dc7635b12d 100644 --- a/test/integration/pj-rehearse/expected.yaml +++ b/test/integration/pj-rehearse/expected.yaml @@ -483,7 +483,8 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true + sparse_checkout_files: + - Dockerfile timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -494,6 +495,8 @@ - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-periodic-ci-super-trooper-master-changed-periodic namespace: test-namespace @@ -567,6 +570,8 @@ number: 1234 sha: test_sha repo: release + sparse_checkout_files: + - Dockerfile report: true rerun_command: /pj-rehearse periodic-ci-super-trooper-master-changed-periodic type: presubmit @@ -700,7 +705,6 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -711,6 +715,8 @@ - base_ref: ciop-cfg-change org: super repo: duper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-pull-ci-super-duper-ciop-cfg-change-images namespace: test-namespace @@ -1098,7 +1104,6 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -1109,6 +1114,8 @@ - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-pull-ci-super-trooper-master-multistage namespace: test-namespace @@ -1225,7 +1232,6 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -1236,6 +1242,8 @@ - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-pull-ci-super-trooper-master-multistage2 namespace: test-namespace @@ -1354,7 +1362,6 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -1365,6 +1372,8 @@ - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-pull-ci-super-trooper-master-multistage3 namespace: test-namespace @@ -1481,7 +1490,6 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -1492,6 +1500,8 @@ - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-pull-ci-super-trooper-master-multistage5 namespace: test-namespace @@ -1608,7 +1618,6 @@ path_strategy: single gcs_credentials_secret: gce-sa-credentials-gcs-publisher grace_period: 15s - skip_cloning: true timeout: 4h0m0s utility_images: clonerefs: gcr.io/k8s-prow/clonerefs:v20190129-0a3c54c @@ -1619,6 +1628,8 @@ - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile workdir: true job: rehearse-1234-pull-ci-super-trooper-master-unit namespace: test-namespace From 7279d1ae84cee9843b02fa818d9e46d0f0af44cb Mon Sep 17 00:00:00 2001 From: Prucek Date: Wed, 6 May 2026 16:12:57 +0200 Subject: [PATCH 3/4] steps/source: clear sparse checkout before src image build When sparse checkout is active, clonerefs inside the src image build only checks out Dockerfiles, leaving the repo without source code. This breaks binary_build_commands (e.g. make all) and test steps that need the full source tree. Clear SparseCheckoutFiles from all refs before passing them to clonerefs in createBuild(), ensuring the src image always gets a full clone regardless of job-level sparse checkout settings. Co-Authored-By: Claude Opus 4.6 --- pkg/steps/source.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/steps/source.go b/pkg/steps/source.go index ac18768008b..9ea8b4f0186 100644 --- a/pkg/steps/source.go +++ b/pkg/steps/source.go @@ -223,6 +223,10 @@ func createBuild(config api.SourceStepConfiguration, jobSpec *api.JobSpec, clone } } + for i := range refs { + refs[i].SparseCheckoutFiles = nil + } + dockerfile := sourceDockerfile(config.From, decorate.DetermineWorkDir(gopath, refs), cloneAuthConfig) buildSource := buildapi.BuildSource{ Type: buildapi.BuildSourceDockerfile, From bbf5ac83bb1df7e82165f7587027a291eb3ebea3 Mon Sep 17 00:00:00 2001 From: Prucek Date: Wed, 6 May 2026 16:13:04 +0200 Subject: [PATCH 4/4] prowgen: propagate sparse checkout to periodic extra_refs Periodic jobs use extra_refs[0] as their primary ref instead of a top-level Refs field. DecorationConfig.SparseCheckoutFiles was not being propagated to this ref, so periodic jobs never used sparse checkout even when configured. Copy SparseCheckoutFiles from DecorationConfig to the periodic's extra_refs[0] before appending it. Co-Authored-By: Claude Opus 4.6 --- pkg/prowgen/prowgen.go | 3 + .../private-org-super-master-presubmits.yaml | 2 + .../duper/private-duper-master-periodics.yaml | 11 ++-- .../private-duper-master-postsubmits.yaml | 9 +-- .../private-duper-master-presubmits.yaml | 27 +++++---- .../duper/super-duper-master-periodics.yaml | 20 +++++-- .../duper/super-duper-master-postsubmits.yaml | 21 ++++--- .../duper/super-duper-master-presubmits.yaml | 60 ++++++++++++------- ...r-master-removed-promotion-presubmits.yaml | 3 +- .../super-duper-release-3.11-postsubmits.yaml | 3 +- .../super-duper-release-3.11-presubmits.yaml | 9 ++- .../super-duper-release-4.19-periodics.yaml | 5 ++ ...uper-duper-ciop-cfg-change-presubmits.yaml | 3 +- ...uper-duper-cluster-profile-presubmits.yaml | 3 +- .../duper/super-duper-master-presubmits.yaml | 3 +- .../super-trooper-master-periodics.yaml | 5 +- .../super-trooper-master-presubmits.yaml | 21 ++++--- ...uper-duper-ciop-cfg-change-presubmits.yaml | 3 +- ...uper-duper-cluster-profile-presubmits.yaml | 3 +- .../duper/super-duper-master-presubmits.yaml | 3 +- .../super-trooper-master-periodics.yaml | 5 +- .../super-trooper-master-presubmits.yaml | 18 ++++-- 22 files changed, 163 insertions(+), 77 deletions(-) diff --git a/pkg/prowgen/prowgen.go b/pkg/prowgen/prowgen.go index 061e8c8e8df..24bd700f46c 100644 --- a/pkg/prowgen/prowgen.go +++ b/pkg/prowgen/prowgen.go @@ -447,6 +447,9 @@ func GeneratePeriodicForTest(jobBaseBuilder *prowJobBaseBuilder, info *ProwgenIn if opts.PathAlias != nil { ref.PathAlias = *opts.PathAlias } + if dc := base.UtilityConfig.DecorationConfig; dc != nil && len(dc.SparseCheckoutFiles) > 0 { + ref.SparseCheckoutFiles = dc.SparseCheckoutFiles + } base.ExtraRefs = append([]prowv1.Refs{ref}, base.ExtraRefs...) if opts.ReleaseController { opts.Interval = "" diff --git a/test/integration/ci-operator-prowgen/output/jobs/private-org/super/private-org-super-master-presubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/private-org/super/private-org-super-master-presubmits.yaml index f311654bbdd..b64c94d8c2b 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/private-org/super/private-org-super-master-presubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/private-org/super/private-org-super-master-presubmits.yaml @@ -11,6 +11,8 @@ presubmits: oauth_token_secret: key: oauth name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - .ci-operator.yaml hidden: true labels: ci.openshift.io/generator: prowgen diff --git a/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-periodics.yaml b/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-periodics.yaml index 3889042cc12..8d3987b45c5 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-periodics.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-periodics.yaml @@ -3,11 +3,17 @@ periodics: cron: '@yearly' decorate: true decoration_config: - skip_cloning: true + oauth_token_secret: + key: oauth + name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: private repo: duper + sparse_checkout_files: + - Dockerfile hidden: true labels: ci.openshift.io/generator: prowgen @@ -55,9 +61,6 @@ periodics: readOnly: true serviceAccountName: ci-operator volumes: - - name: github-credentials-openshift-ci-robot-private-git-cloner - secret: - secretName: github-credentials-openshift-ci-robot-private-git-cloner - name: manifest-tool-local-pusher secret: secretName: manifest-tool-local-pusher diff --git a/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-postsubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-postsubmits.yaml index 2e4eb256199..dabf8f20b05 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-postsubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-postsubmits.yaml @@ -6,7 +6,11 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + oauth_token_secret: + key: oauth + name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - Dockerfile hidden: true labels: ci-operator.openshift.io/is-promotion: "true" @@ -52,9 +56,6 @@ postsubmits: readOnly: true serviceAccountName: ci-operator volumes: - - name: github-credentials-openshift-ci-robot-private-git-cloner - secret: - secretName: github-credentials-openshift-ci-robot-private-git-cloner - name: manifest-tool-local-pusher secret: secretName: manifest-tool-local-pusher diff --git a/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-presubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-presubmits.yaml index 7bddf5adda3..807cb125a1c 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-presubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/private/duper/private-duper-master-presubmits.yaml @@ -8,7 +8,11 @@ presubmits: context: ci/prow/e2e decorate: true decoration_config: - skip_cloning: true + oauth_token_secret: + key: oauth + name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - Dockerfile hidden: true labels: ci.openshift.io/generator: prowgen @@ -57,9 +61,6 @@ presubmits: readOnly: true serviceAccountName: ci-operator volumes: - - name: github-credentials-openshift-ci-robot-private-git-cloner - secret: - secretName: github-credentials-openshift-ci-robot-private-git-cloner - name: manifest-tool-local-pusher secret: secretName: manifest-tool-local-pusher @@ -78,7 +79,11 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + oauth_token_secret: + key: oauth + name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - Dockerfile hidden: true labels: ci.openshift.io/generator: prowgen @@ -120,9 +125,6 @@ presubmits: readOnly: true serviceAccountName: ci-operator volumes: - - name: github-credentials-openshift-ci-robot-private-git-cloner - secret: - secretName: github-credentials-openshift-ci-robot-private-git-cloner - name: manifest-tool-local-pusher secret: secretName: manifest-tool-local-pusher @@ -141,7 +143,11 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + oauth_token_secret: + key: oauth + name: github-credentials-openshift-ci-robot-private-git-cloner + sparse_checkout_files: + - Dockerfile hidden: true labels: ci.openshift.io/generator: prowgen @@ -190,9 +196,6 @@ presubmits: readOnly: true serviceAccountName: ci-operator volumes: - - name: github-credentials-openshift-ci-robot-private-git-cloner - secret: - secretName: github-credentials-openshift-ci-robot-private-git-cloner - name: manifest-tool-local-pusher secret: secretName: manifest-tool-local-pusher diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-periodics.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-periodics.yaml index a307d477b71..cfd4e37e1e2 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-periodics.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-periodics.yaml @@ -3,11 +3,14 @@ periodics: cron: '@yearly' decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: super repo: duper + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -62,11 +65,14 @@ periodics: - agent: kubernetes decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: super repo: duper + sparse_checkout_files: + - Dockerfile interval: 24h labels: ci.openshift.io/generator: prowgen @@ -123,11 +129,14 @@ periodics: cron: '@yearly' decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: super repo: duper + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -183,11 +192,14 @@ periodics: cron: '@yearly' decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: super repo: duper + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/release-controller: "true" ci.openshift.io/generator: prowgen diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-postsubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-postsubmits.yaml index 94006c5f322..8f68cd57ac0 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-postsubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-postsubmits.yaml @@ -6,7 +6,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci.openshift.io/generator: prowgen @@ -65,7 +66,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci-operator.openshift.io/variant: images-build-affected @@ -126,7 +128,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci-operator.openshift.io/variant: images-changed @@ -187,7 +190,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci-operator.openshift.io/variant: images-pipeline-changed @@ -248,7 +252,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci-operator.openshift.io/variant: images-skip-docs @@ -316,7 +321,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen max_concurrency: 6 @@ -374,7 +380,8 @@ postsubmits: - ^master$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci-operator.openshift.io/variant: variant diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-presubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-presubmits.yaml index fd379d068dc..4e4ea6f0a5b 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-presubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-presubmits.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/ci-index decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -62,7 +63,8 @@ presubmits: context: ci/prow/ci-index-my-bundle decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -117,7 +119,8 @@ presubmits: context: ci/prow/e2e decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -179,7 +182,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -236,7 +240,8 @@ presubmits: context: ci/prow/images-build-affected-images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-build-affected ci.openshift.io/generator: prowgen @@ -293,7 +298,8 @@ presubmits: context: ci/prow/images-build-affected-unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-build-affected ci.openshift.io/generator: prowgen @@ -357,7 +363,8 @@ presubmits: context: ci/prow/images-changed-images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-changed ci.openshift.io/generator: prowgen @@ -415,7 +422,8 @@ presubmits: context: ci/prow/images-changed-unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-changed ci.openshift.io/generator: prowgen @@ -481,7 +489,8 @@ presubmits: context: ci/prow/images-pipeline-changed-images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-pipeline-changed ci.openshift.io/generator: prowgen @@ -538,7 +547,8 @@ presubmits: context: ci/prow/images-pipeline-changed-unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-pipeline-changed ci.openshift.io/generator: prowgen @@ -602,7 +612,8 @@ presubmits: context: ci/prow/images-skip-docs-images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-skip-docs ci.openshift.io/generator: prowgen @@ -660,7 +671,8 @@ presubmits: context: ci/prow/images-skip-docs-unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: images-skip-docs ci.openshift.io/generator: prowgen @@ -734,7 +746,8 @@ presubmits: context: ci/prow/lint decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -796,7 +809,8 @@ presubmits: context: ci/prow/optional-job decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/cloud: aws ci-operator.openshift.io/cloud-cluster-profile: aws @@ -871,7 +885,8 @@ presubmits: context: ci/prow/registry decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -943,7 +958,8 @@ presubmits: context: ci/prow/registry-with-profile decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/cloud: aws ci-operator.openshift.io/cloud-cluster-profile: aws @@ -1017,7 +1033,8 @@ presubmits: context: ci/prow/steps decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -1089,7 +1106,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -1151,7 +1169,8 @@ presubmits: context: ci/prow/variant-images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: variant ci.openshift.io/generator: prowgen @@ -1209,7 +1228,8 @@ presubmits: context: ci/prow/variant-unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/variant: variant ci.openshift.io/generator: prowgen diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-removed-promotion-presubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-removed-promotion-presubmits.yaml index f942642906c..d8b1396802e 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-removed-promotion-presubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-master-removed-promotion-presubmits.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-postsubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-postsubmits.yaml index a34b84aeed3..33049af3c45 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-postsubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-postsubmits.yaml @@ -6,7 +6,8 @@ postsubmits: - ^release-3\.11$ decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/is-promotion: "true" ci.openshift.io/generator: prowgen diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-presubmits.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-presubmits.yaml index e1d4ad6d6ad..aa820b4c3c7 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-presubmits.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-3.11-presubmits.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -73,7 +74,8 @@ presubmits: context: ci/prow/lint decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -135,7 +137,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-4.19-periodics.yaml b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-4.19-periodics.yaml index 6f8e049f553..347431c3312 100644 --- a/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-4.19-periodics.yaml +++ b/test/integration/ci-operator-prowgen/output/jobs/super/duper/super-duper-release-4.19-periodics.yaml @@ -2,10 +2,15 @@ periodics: - agent: kubernetes cron: 47 3 * * * decorate: true + decoration_config: + sparse_checkout_files: + - .ci-operator.yaml extra_refs: - base_ref: release-4.19 org: super repo: duper + sparse_checkout_files: + - .ci-operator.yaml labels: ci-operator.openshift.io/variant: periodics ci.openshift.io/generator: prowgen diff --git a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml index 9cb9ec18efc..3b38f0070e9 100644 --- a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml +++ b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml @@ -41,7 +41,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml index 95a595cffc2..a2446641646 100644 --- a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml +++ b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml index bdc319cb32a..22dc0c16e73 100644 --- a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml +++ b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml @@ -83,7 +83,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml index 696bd8d77ed..a9344ff14a4 100644 --- a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml +++ b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml @@ -49,11 +49,14 @@ periodics: cron: '@yearly' decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml index 953f8047afd..f562211102c 100644 --- a/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml +++ b/test/integration/pj-rehearse/candidate/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml @@ -82,7 +82,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -165,7 +166,8 @@ presubmits: context: ci/prow/multistage decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -237,7 +239,8 @@ presubmits: context: ci/prow/multistage2 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -309,7 +312,8 @@ presubmits: context: ci/prow/multistage3 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/cloud: azure4 ci-operator.openshift.io/cloud-cluster-profile: azure4 @@ -383,7 +387,8 @@ presubmits: context: ci/prow/multistage4 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -455,7 +460,8 @@ presubmits: context: ci/prow/multistage5 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -527,7 +533,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml b/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml index 9cb9ec18efc..3b38f0070e9 100644 --- a/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml +++ b/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-ciop-cfg-change-presubmits.yaml @@ -41,7 +41,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml b/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml index 95a595cffc2..a2446641646 100644 --- a/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml +++ b/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-cluster-profile-presubmits.yaml @@ -8,7 +8,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml b/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml index ca3afea2e18..856cfd46c9f 100644 --- a/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml +++ b/test/integration/pj-rehearse/master/ci-operator/jobs/super/duper/super-duper-master-presubmits.yaml @@ -78,7 +78,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml b/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml index f9526875786..b6ad4419628 100644 --- a/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml +++ b/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-periodics.yaml @@ -48,11 +48,14 @@ periodics: cron: '@yearly' decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile extra_refs: - base_ref: master org: super repo: trooper + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" diff --git a/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml b/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml index 7aefd78eecd..c4dbf88b2d8 100644 --- a/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml +++ b/test/integration/pj-rehearse/master/ci-operator/jobs/super/trooper/super-trooper-master-presubmits.yaml @@ -82,7 +82,8 @@ presubmits: context: ci/prow/images decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -165,7 +166,8 @@ presubmits: context: ci/prow/multistage decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -237,7 +239,8 @@ presubmits: context: ci/prow/multistage2 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -309,7 +312,8 @@ presubmits: context: ci/prow/multistage3 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci-operator.openshift.io/cloud: azure4 ci-operator.openshift.io/cloud-cluster-profile: azure4 @@ -383,7 +387,8 @@ presubmits: context: ci/prow/multistage4 decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true" @@ -455,7 +460,8 @@ presubmits: context: ci/prow/unit decorate: true decoration_config: - skip_cloning: true + sparse_checkout_files: + - Dockerfile labels: ci.openshift.io/generator: prowgen pj-rehearse.openshift.io/can-be-rehearsed: "true"