Skip to content

Commit 2374f38

Browse files
authored
PYTHON-5379 Run more variants on pull requests (#2340)
1 parent 75f6a37 commit 2374f38

File tree

3 files changed

+65
-9
lines changed

3 files changed

+65
-9
lines changed

.evergreen/generated_configs/tasks.yml

+4
Original file line numberDiff line numberDiff line change
@@ -178,26 +178,30 @@ tasks:
178178
vars:
179179
TEST_NAME: kms
180180
SUB_TEST_NAME: gcp
181+
tags: []
181182
- name: test-gcpkms-fail
182183
commands:
183184
- func: run server
184185
- func: run tests
185186
vars:
186187
TEST_NAME: kms
187188
SUB_TEST_NAME: gcp-fail
189+
tags: [pr]
188190
- name: test-azurekms
189191
commands:
190192
- func: run tests
191193
vars:
192194
TEST_NAME: kms
193195
SUB_TEST_NAME: azure
196+
tags: []
194197
- name: test-azurekms-fail
195198
commands:
196199
- func: run server
197200
- func: run tests
198201
vars:
199202
TEST_NAME: kms
200203
SUB_TEST_NAME: azure-fail
204+
tags: [pr]
201205

202206
# Mod wsgi tests
203207
- name: mod-wsgi-replica-set-python3.9

.evergreen/generated_configs/variants.yml

+26-3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ buildvariants:
2222
VERSION: latest
2323
NO_EXT: "1"
2424
REQUIRE_FIPS: "1"
25+
tags: []
2526
- name: other-hosts-rhel8-zseries-latest
2627
tasks:
2728
- name: .test-no-toolchain
@@ -32,6 +33,7 @@ buildvariants:
3233
expansions:
3334
VERSION: latest
3435
NO_EXT: "1"
36+
tags: []
3537
- name: other-hosts-rhel8-power8-latest
3638
tasks:
3739
- name: .test-no-toolchain
@@ -42,6 +44,7 @@ buildvariants:
4244
expansions:
4345
VERSION: latest
4446
NO_EXT: "1"
47+
tags: []
4548
- name: other-hosts-rhel8-arm64-latest
4649
tasks:
4750
- name: .test-no-toolchain
@@ -52,6 +55,7 @@ buildvariants:
5255
expansions:
5356
VERSION: latest
5457
NO_EXT: "1"
58+
tags: []
5559
- name: other-hosts-amazon2023-latest
5660
tasks:
5761
- name: .test-no-toolchain
@@ -62,6 +66,7 @@ buildvariants:
6266
expansions:
6367
VERSION: latest
6468
NO_EXT: "1"
69+
tags: [pr]
6570

6671
# Atlas connect tests
6772
- name: atlas-connect-rhel8
@@ -70,6 +75,7 @@ buildvariants:
7075
display_name: Atlas connect RHEL8
7176
run_on:
7277
- rhel87-small
78+
tags: [pr]
7379

7480
# Atlas data lake tests
7581
- name: atlas-data-lake-ubuntu-22
@@ -80,6 +86,7 @@ buildvariants:
8086
- ubuntu2204-small
8187
expansions:
8288
TEST_NAME: data_lake
89+
tags: [pr]
8390

8491
# Aws auth tests
8592
- name: auth-aws-ubuntu-20
@@ -88,18 +95,21 @@ buildvariants:
8895
display_name: Auth AWS Ubuntu-20
8996
run_on:
9097
- ubuntu2004-small
98+
tags: []
9199
- name: auth-aws-win64
92100
tasks:
93101
- name: .auth-aws !.auth-aws-ecs
94102
display_name: Auth AWS Win64
95103
run_on:
96104
- windows-64-vsMulti-small
105+
tags: []
97106
- name: auth-aws-macos
98107
tasks:
99108
- name: .auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2
100109
display_name: Auth AWS macOS
101110
run_on:
102111
- macos-14
112+
tags: [pr]
103113

104114
# Aws lambda tests
105115
- name: faas-lambda
@@ -288,6 +298,7 @@ buildvariants:
288298
- rhel87-small
289299
expansions:
290300
PYTHON_BINARY: /opt/python/3.13t/bin/python3
301+
tags: [pr]
291302
- name: free-threaded-macos-python3.13t
292303
tasks:
293304
- name: .free-threading
@@ -296,6 +307,7 @@ buildvariants:
296307
- macos-14
297308
expansions:
298309
PYTHON_BINARY: /Library/Frameworks/PythonT.Framework/Versions/3.13/bin/python3t
310+
tags: []
299311
- name: free-threaded-macos-arm64-python3.13t
300312
tasks:
301313
- name: .free-threading
@@ -304,6 +316,7 @@ buildvariants:
304316
- macos-14-arm64
305317
expansions:
306318
PYTHON_BINARY: /Library/Frameworks/PythonT.Framework/Versions/3.13/bin/python3t
319+
tags: []
307320

308321
# Green framework tests
309322
- name: green-eventlet-rhel8
@@ -372,6 +385,7 @@ buildvariants:
372385
- rhel87-small
373386
expansions:
374387
TEST_NAME: mockupdb
388+
tags: [pr]
375389

376390
# Mod wsgi tests
377391
- name: mod_wsgi-ubuntu-22
@@ -398,6 +412,7 @@ buildvariants:
398412
display_name: No server RHEL8
399413
run_on:
400414
- rhel87-small
415+
tags: [pr]
401416

402417
# Ocsp tests
403418
- name: ocsp-rhel8
@@ -427,21 +442,29 @@ buildvariants:
427442
# Oidc auth tests
428443
- name: auth-oidc-ubuntu-22
429444
tasks:
430-
- name: .auth_oidc
445+
- name: .auth_oidc_remote
431446
display_name: Auth OIDC Ubuntu-22
432447
run_on:
433448
- ubuntu2204-small
434449
batchtime: 10080
450+
- name: auth-oidc-local-ubuntu-22
451+
tasks:
452+
- name: "!.auth_oidc_remote .auth_oidc"
453+
display_name: Auth OIDC Local Ubuntu-22
454+
run_on:
455+
- ubuntu2204-small
456+
batchtime: 10080
457+
tags: [pr]
435458
- name: auth-oidc-macos
436459
tasks:
437-
- name: .auth_oidc !.auth_oidc_remote
460+
- name: "!.auth_oidc_remote .auth_oidc"
438461
display_name: Auth OIDC macOS
439462
run_on:
440463
- macos-14
441464
batchtime: 10080
442465
- name: auth-oidc-win64
443466
tasks:
444-
- name: .auth_oidc !.auth_oidc_remote
467+
- name: "!.auth_oidc_remote .auth_oidc"
445468
display_name: Auth OIDC Win64
446469
run_on:
447470
- windows-64-vsMulti-small

.evergreen/scripts/generate_config.py

+35-6
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,13 @@ def create_free_threaded_variants() -> list[BuildVariant]:
112112
# TODO: PYTHON-5027
113113
continue
114114
tasks = [".free-threading"]
115+
tags = []
116+
if host_name == "rhel8":
117+
tags.append("pr")
115118
host = HOSTS[host_name]
116119
python = "3.13t"
117120
display_name = get_variant_name("Free-threaded", host, python=python)
118-
variant = create_variant(tasks, display_name, python=python, host=host)
121+
variant = create_variant(tasks, display_name, tags=tags, python=python, host=host)
119122
variants.append(variant)
120123
return variants
121124

@@ -329,7 +332,7 @@ def create_atlas_data_lake_variants():
329332
tasks = [".test-no-orchestration"]
330333
expansions = dict(TEST_NAME="data_lake")
331334
display_name = get_variant_name("Atlas Data Lake", host)
332-
return [create_variant(tasks, display_name, host=host, expansions=expansions)]
335+
return [create_variant(tasks, display_name, tags=["pr"], host=host, expansions=expansions)]
333336

334337

335338
def create_mod_wsgi_variants():
@@ -370,9 +373,9 @@ def create_oidc_auth_variants():
370373
variants = []
371374
for host_name in ["ubuntu22", "macos", "win64"]:
372375
if host_name == "ubuntu22":
373-
tasks = [".auth_oidc"]
376+
tasks = [".auth_oidc_remote"]
374377
else:
375-
tasks = [".auth_oidc !.auth_oidc_remote"]
378+
tasks = ["!.auth_oidc_remote .auth_oidc"]
376379
host = HOSTS[host_name]
377380
variants.append(
378381
create_variant(
@@ -382,6 +385,18 @@ def create_oidc_auth_variants():
382385
batchtime=BATCHTIME_WEEK,
383386
)
384387
)
388+
# Add a specific local test to run on PRs.
389+
if host_name == "ubuntu22":
390+
tasks = ["!.auth_oidc_remote .auth_oidc"]
391+
variants.append(
392+
create_variant(
393+
tasks,
394+
get_variant_name("Auth OIDC Local", host),
395+
tags=["pr"],
396+
host=host,
397+
batchtime=BATCHTIME_WEEK,
398+
)
399+
)
385400
return variants
386401

387402

@@ -406,6 +421,7 @@ def create_mockupdb_variants():
406421
[".test-no-orchestration"],
407422
get_variant_name("MockupDB", host),
408423
host=host,
424+
tags=["pr"],
409425
expansions=expansions,
410426
)
411427
]
@@ -430,6 +446,7 @@ def create_atlas_connect_variants():
430446
create_variant(
431447
[".test-no-orchestration"],
432448
get_variant_name("Atlas connect", host),
449+
tags=["pr"],
433450
host=DEFAULT_HOST,
434451
)
435452
]
@@ -469,15 +486,18 @@ def create_aws_auth_variants():
469486
for host_name in ["ubuntu20", "win64", "macos"]:
470487
expansions = dict()
471488
tasks = [".auth-aws"]
489+
tags = []
472490
if host_name == "macos":
473491
tasks = [".auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2"]
492+
tags = ["pr"]
474493
elif host_name == "win64":
475494
tasks = [".auth-aws !.auth-aws-ecs"]
476495
host = HOSTS[host_name]
477496
variant = create_variant(
478497
tasks,
479498
get_variant_name("Auth AWS", host),
480499
host=host,
500+
tags=tags,
481501
expansions=expansions,
482502
)
483503
variants.append(variant)
@@ -487,7 +507,7 @@ def create_aws_auth_variants():
487507
def create_no_server_variants():
488508
host = HOSTS["rhel8"]
489509
name = get_variant_name("No server", host=host)
490-
return [create_variant([".test-no-orchestration"], name, host=host)]
510+
return [create_variant([".test-no-orchestration"], name, host=host, tags=["pr"])]
491511

492512

493513
def create_alternative_hosts_variants():
@@ -512,14 +532,18 @@ def create_alternative_hosts_variants():
512532
expansions = dict(VERSION="latest")
513533
handle_c_ext(C_EXTS[0], expansions)
514534
host = HOSTS[host_name]
535+
tags = []
515536
if "fips" in host_name.lower():
516537
expansions["REQUIRE_FIPS"] = "1"
538+
if "amazon" in host_name.lower():
539+
tags.append("pr")
517540
variants.append(
518541
create_variant(
519542
[".test-no-toolchain"],
520543
display_name=get_variant_name("Other hosts", host, version=version),
521544
batchtime=batchtime,
522545
host=host,
546+
tags=tags,
523547
expansions=expansions,
524548
)
525549
)
@@ -693,16 +717,18 @@ def create_kms_tasks():
693717
for success in [True, False]:
694718
name = f"test-{kms_type}kms"
695719
sub_test_name = kms_type
720+
tags = []
696721
if not success:
697722
name += "-fail"
698723
sub_test_name += "-fail"
724+
tags.append("pr")
699725
commands = []
700726
if not success:
701727
commands.append(FunctionCall(func="run server"))
702728
test_vars = dict(TEST_NAME="kms", SUB_TEST_NAME=sub_test_name)
703729
test_func = FunctionCall(func="run tests", vars=test_vars)
704730
commands.append(test_func)
705-
tasks.append(EvgTask(name=name, commands=commands))
731+
tasks.append(EvgTask(name=name, tags=tags, commands=commands))
706732
return tasks
707733

708734

@@ -756,6 +782,7 @@ def create_oidc_tasks():
756782
if sub_test != "default":
757783
tags.append("auth_oidc_remote")
758784
tasks.append(EvgTask(name=task_name, tags=tags, commands=[test_func]))
785+
759786
return tasks
760787

761788

@@ -802,6 +829,8 @@ def _create_ocsp_tasks(algo, variant, server_type, base_task_name):
802829
tags = ["ocsp", f"ocsp-{algo}", version]
803830
if "disableStapling" not in variant:
804831
tags.append("ocsp-staple")
832+
if algo == "valid-cert-server-staples" and version == "latest":
833+
tags.append("pr")
805834

806835
task_name = get_task_name(
807836
f"test-ocsp-{algo}-{base_task_name}", python=python, version=version

0 commit comments

Comments
 (0)