Skip to content

Commit ee1c350

Browse files
Don't build for targets from test jobs (#2785)
Don't build for targets from test jobs These should rather be explicitly configured in the build jobs as well. Otherwise, this results in potentially too many Copr builds being submitted when there are multiple build jobs defined. Fixes #2669 Before getting this to prod, we will need to open PRs to affected repositories to not break their workflows. RELEASE NOTES BEGIN In test jobs, it is now explicitly required to include the targets needed for running build jobs; they will no longer be automatically deduced to prevent inconsistencies in creating build and test jobs. RELEASE NOTES END Reviewed-by: Matej Focko
2 parents fdd59f7 + 5c4bdf7 commit ee1c350

File tree

3 files changed

+22
-105
lines changed

3 files changed

+22
-105
lines changed

packit_service/worker/helpers/build/build_helper.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,17 +86,13 @@ def configured_build_targets(self) -> set[str]:
8686
"""
8787
Return the configured targets for build job.
8888
89-
1. Use targets defined for build job and targets defined for test job.
89+
1. Use targets defined for build job.
9090
2. Use "fedora-stable" alias if neither defined.
9191
"""
9292
targets = set()
9393
if self.job_build:
9494
targets.update(self.job_build.targets)
9595

96-
for test_job in self.job_tests_all:
97-
if not test_job.skip_build:
98-
targets.update(test_job.targets)
99-
10096
if (
10197
self.job_type_build == JobType.copr_build
10298
and (self.job_build and not self.job_build.targets)

tests/unit/test_build_helper.py

Lines changed: 15 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def _mock_targets(jobs, job, job_type):
260260
),
261261
],
262262
(JobConfigTriggerType.pull_request, ProjectEventModelType.pull_request),
263-
set(STABLE_VERSIONS),
263+
{"fedora-stable"},
264264
id="test_with_targets",
265265
),
266266
pytest.param(
@@ -301,48 +301,6 @@ def _mock_targets(jobs, job, job_type):
301301
set(STABLE_VERSIONS),
302302
id="build_with_target&test_without_targets",
303303
),
304-
pytest.param(
305-
[
306-
JobConfig(
307-
type=JobType.copr_build,
308-
trigger=JobConfigTriggerType.pull_request,
309-
packages={"packages": CommonPackageConfig()},
310-
),
311-
JobConfig(
312-
type=JobType.tests,
313-
trigger=JobConfigTriggerType.pull_request,
314-
packages={
315-
"package": CommonPackageConfig(
316-
_targets=STABLE_VERSIONS,
317-
),
318-
},
319-
),
320-
],
321-
(JobConfigTriggerType.pull_request, ProjectEventModelType.pull_request),
322-
set(STABLE_VERSIONS),
323-
id="build_without_target&test_with_targets",
324-
),
325-
pytest.param(
326-
[
327-
JobConfig(
328-
type=JobType.copr_build,
329-
trigger=JobConfigTriggerType.pull_request,
330-
packages={"packages": CommonPackageConfig()},
331-
),
332-
JobConfig(
333-
type=JobType.tests,
334-
trigger=JobConfigTriggerType.pull_request,
335-
packages={
336-
"package": CommonPackageConfig(
337-
_targets=list(ONE_CHROOT_SET),
338-
),
339-
},
340-
),
341-
],
342-
(JobConfigTriggerType.pull_request, ProjectEventModelType.pull_request),
343-
ONE_CHROOT_SET,
344-
id="build_without_target&test_with_one_str_target",
345-
),
346304
pytest.param(
347305
[
348306
JobConfig(
@@ -458,52 +416,6 @@ def _mock_targets(jobs, job, job_type):
458416
{"fedora-stable"},
459417
id="build[pr+commit+release]&test[pr]&commit",
460418
),
461-
pytest.param(
462-
[
463-
JobConfig(
464-
type=JobType.copr_build,
465-
trigger=JobConfigTriggerType.pull_request,
466-
packages={"packages": CommonPackageConfig()},
467-
),
468-
JobConfig(
469-
type=JobType.tests,
470-
trigger=JobConfigTriggerType.pull_request,
471-
packages={
472-
"package": CommonPackageConfig(
473-
_targets=list(ONE_CHROOT_SET),
474-
),
475-
},
476-
),
477-
],
478-
(JobConfigTriggerType.pull_request, ProjectEventModelType.pull_request),
479-
ONE_CHROOT_SET,
480-
id="build_with_mixed_build_alias",
481-
),
482-
pytest.param(
483-
[
484-
JobConfig(
485-
type=JobType.copr_build,
486-
trigger=JobConfigTriggerType.pull_request,
487-
packages={
488-
"package": CommonPackageConfig(
489-
_targets=STABLE_VERSIONS,
490-
),
491-
},
492-
),
493-
JobConfig(
494-
type=JobType.tests,
495-
trigger=JobConfigTriggerType.pull_request,
496-
packages={
497-
"package": CommonPackageConfig(
498-
_targets=["fedora-rawhide"],
499-
),
500-
},
501-
),
502-
],
503-
(JobConfigTriggerType.pull_request, ProjectEventModelType.pull_request),
504-
{*STABLE_VERSIONS, "fedora-rawhide"},
505-
id="build_with_mixed_build_tests",
506-
),
507419
],
508420
)
509421
def test_configured_build_targets(jobs, job_type, build_chroots):
@@ -977,7 +889,7 @@ def test_deduced_copr_targets():
977889
JobConfigTriggerType.pull_request,
978890
None,
979891
{("centos-7-x86_64", None)},
980-
{"epel-7-x86_64"},
892+
STABLE_CHROOTS,
981893
None,
982894
[{"centos-7-x86_64"}],
983895
id="build_test_mapping_test_overrides",
@@ -999,7 +911,7 @@ def test_deduced_copr_targets():
999911
JobConfigTriggerType.pull_request,
1000912
{("epel-7-x86_64", None)},
1001913
None,
1002-
{"epel-7-x86_64"},
914+
set(),
1003915
None,
1004916
[{"centos-7-x86_64", "rhel-7-x86_64"}],
1005917
id="build_test_mapping_build_overrides",
@@ -1019,7 +931,7 @@ def test_deduced_copr_targets():
1019931
JobConfigTriggerType.pull_request,
1020932
None,
1021933
{("centos-stream-8-x86_64", None)},
1022-
{"centos-stream-8-x86_64"},
934+
STABLE_CHROOTS,
1023935
None,
1024936
[{"centos-stream-8-x86_64"}],
1025937
id="targets_in_tests_no_mapping",
@@ -1064,7 +976,7 @@ def test_deduced_copr_targets():
1064976
JobConfigTriggerType.pull_request,
1065977
{("epel-7-x86_64", None)},
1066978
None,
1067-
{"epel-7-x86_64"},
979+
set(),
1068980
None,
1069981
[{"centos-7-x86_64"}],
1070982
id="default_mapping_build_override",
@@ -1084,7 +996,7 @@ def test_deduced_copr_targets():
1084996
JobConfigTriggerType.pull_request,
1085997
None,
1086998
{("centos-7-x86_64", None)},
1087-
{"epel-7-x86_64"},
999+
STABLE_CHROOTS,
10881000
None,
10891001
[{"centos-7-x86_64"}],
10901002
id="default_mapping_test_override",
@@ -1104,7 +1016,7 @@ def test_deduced_copr_targets():
11041016
JobConfigTriggerType.pull_request,
11051017
{("epel-7-ppc64le", None)},
11061018
None,
1107-
{"epel-7-ppc64le"},
1019+
set(),
11081020
None,
11091021
[{"centos-7-ppc64le"}],
11101022
id="default_mapping_build_override_different_arch",
@@ -1124,7 +1036,7 @@ def test_deduced_copr_targets():
11241036
JobConfigTriggerType.pull_request,
11251037
None,
11261038
{("centos-7-ppc64le", None)},
1127-
{"epel-7-ppc64le"},
1039+
STABLE_CHROOTS,
11281040
None,
11291041
[{"centos-7-ppc64le"}],
11301042
id="default_mapping_test_override_different_arch",
@@ -1153,7 +1065,7 @@ def test_deduced_copr_targets():
11531065
JobConfigTriggerType.pull_request,
11541066
{("fedora-rawhide-x86_64", None)},
11551067
None,
1156-
{"fedora-rawhide-x86_64"},
1068+
set(),
11571069
None,
11581070
[{"fedora-rawhide-x86_64"}, set()],
11591071
id="rebuild_default_job_targets",
@@ -1182,7 +1094,7 @@ def test_deduced_copr_targets():
11821094
JobConfigTriggerType.pull_request,
11831095
{("fedora-41-x86_64", "latest")},
11841096
None,
1185-
{"fedora-41-x86_64"},
1097+
set(),
11861098
None,
11871099
[set(), {"fedora-41-x86_64"}],
11881100
id="rebuild_latest_job_targets",
@@ -1212,7 +1124,7 @@ def test_deduced_copr_targets():
12121124
JobConfigTriggerType.pull_request,
12131125
{("fedora-41-x86_64", "latest")},
12141126
None,
1215-
{"fedora-41-x86_64"},
1127+
set(),
12161128
None,
12171129
[set(), {"fedora-41-x86_64"}],
12181130
id="rebuild_latest_job_targets_for_job_with_identifier",
@@ -1287,6 +1199,10 @@ def test_build_targets_overrides(
12871199
"fedora-rawhide-x86_64",
12881200
default=None,
12891201
).and_return({"fedora-rawhide-x86_64", "fedora-41-x86_64"})
1202+
flexmock(CoprHelper).should_receive("get_valid_build_targets").with_args(
1203+
"fedora-stable",
1204+
default=None,
1205+
).and_return(STABLE_CHROOTS)
12901206

12911207
assert copr_build_helper.build_targets == build_targets
12921208
for job in [job for job in jobs if job.type == JobType.copr_build]:

tests/unit/test_testing_farm.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,12 @@ def test_testing_farm_response(
101101
JobConfig(
102102
type=JobType.copr_build,
103103
trigger=JobConfigTriggerType.pull_request,
104-
packages={"package": CommonPackageConfig()},
104+
packages={
105+
"package": CommonPackageConfig(
106+
identifier=None,
107+
_targets=["fedora-rawhide"],
108+
),
109+
},
105110
),
106111
JobConfig(
107112
type=JobType.tests,

0 commit comments

Comments
 (0)