Skip to content

Commit 1c3a0d2

Browse files
authored
chore: Deprecate nodejs12.x and nodejs14.x (#614)
* chore: Deprecate nodejs12.x and nodejs14.x * Update esbuild targets to node20
1 parent f11d2a5 commit 1c3a0d2

File tree

5 files changed

+56
-64
lines changed

5 files changed

+56
-64
lines changed

aws_lambda_builders/validator.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
LOG = logging.getLogger(__name__)
1111

1212
SUPPORTED_RUNTIMES = {
13-
"nodejs12.x": [ARM64, X86_64],
14-
"nodejs14.x": [ARM64, X86_64],
1513
"nodejs16.x": [ARM64, X86_64],
1614
"nodejs18.x": [ARM64, X86_64],
1715
"nodejs20.x": [ARM64, X86_64],

tests/integration/workflows/nodejs_npm/test_nodejs_npm.py

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def tearDown(self):
4141
shutil.rmtree(self.dependencies_dir)
4242
shutil.rmtree(self.temp_dir)
4343

44-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
44+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
4545
def test_builds_project_without_dependencies(self, runtime):
4646
source_dir = os.path.join(self.TEST_DATA_FOLDER, "no-deps")
4747

@@ -57,7 +57,7 @@ def test_builds_project_without_dependencies(self, runtime):
5757
output_files = set(os.listdir(self.artifacts_dir))
5858
self.assertEqual(expected_files, output_files)
5959

60-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
60+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
6161
def test_builds_project_without_manifest(self, runtime):
6262
source_dir = os.path.join(self.TEST_DATA_FOLDER, "no-manifest")
6363

@@ -75,7 +75,7 @@ def test_builds_project_without_manifest(self, runtime):
7575
mock_warning.assert_called_once_with("package.json file not found. Continuing the build without dependencies.")
7676
self.assertEqual(expected_files, output_files)
7777

78-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
78+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
7979
def test_builds_project_and_excludes_hidden_aws_sam(self, runtime):
8080
source_dir = os.path.join(self.TEST_DATA_FOLDER, "excluded-files")
8181

@@ -91,7 +91,7 @@ def test_builds_project_and_excludes_hidden_aws_sam(self, runtime):
9191
output_files = set(os.listdir(self.artifacts_dir))
9292
self.assertEqual(expected_files, output_files)
9393

94-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
94+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
9595
def test_builds_project_with_remote_dependencies(self, runtime):
9696
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
9797

@@ -111,7 +111,7 @@ def test_builds_project_with_remote_dependencies(self, runtime):
111111
output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules")))
112112
self.assertEqual(expected_modules, output_modules)
113113

114-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
114+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
115115
def test_builds_project_with_npmrc(self, runtime):
116116
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npmrc")
117117

@@ -134,18 +134,12 @@ def test_builds_project_with_npmrc(self, runtime):
134134

135135
@parameterized.expand(
136136
[
137-
("nodejs12.x", "package-lock"),
138-
("nodejs14.x", "package-lock"),
139137
("nodejs16.x", "package-lock"),
140138
("nodejs18.x", "package-lock"),
141139
("nodejs20.x", "package-lock"),
142-
("nodejs12.x", "shrinkwrap"),
143-
("nodejs14.x", "shrinkwrap"),
144140
("nodejs16.x", "shrinkwrap"),
145141
("nodejs18.x", "shrinkwrap"),
146142
("nodejs20.x", "shrinkwrap"),
147-
("nodejs12.x", "package-lock-and-shrinkwrap"),
148-
("nodejs14.x", "package-lock-and-shrinkwrap"),
149143
("nodejs16.x", "package-lock-and-shrinkwrap"),
150144
("nodejs18.x", "package-lock-and-shrinkwrap"),
151145
("nodejs20.x", "package-lock-and-shrinkwrap"),
@@ -175,7 +169,7 @@ def test_builds_project_with_lockfile(self, runtime, dir_name):
175169

176170
self.assertEqual(expected_files, output_files)
177171

178-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
172+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
179173
def test_fails_if_npm_cannot_resolve_dependencies(self, runtime):
180174
source_dir = os.path.join(self.TEST_DATA_FOLDER, "broken-deps")
181175

@@ -190,7 +184,7 @@ def test_fails_if_npm_cannot_resolve_dependencies(self, runtime):
190184

191185
self.assertIn("No matching version found for [email protected]", str(ctx.exception))
192186

193-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
187+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
194188
def test_builds_project_with_remote_dependencies_without_download_dependencies_with_dependencies_dir(self, runtime):
195189
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
196190

@@ -208,7 +202,7 @@ def test_builds_project_with_remote_dependencies_without_download_dependencies_w
208202
output_files = set(os.listdir(self.artifacts_dir))
209203
self.assertEqual(expected_files, output_files)
210204

211-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
205+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
212206
def test_builds_project_with_remote_dependencies_with_download_dependencies_and_dependencies_dir(self, runtime):
213207
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
214208

@@ -238,7 +232,7 @@ def test_builds_project_with_remote_dependencies_with_download_dependencies_and_
238232
output_dependencies_files = set(os.listdir(os.path.join(self.dependencies_dir)))
239233
self.assertNotIn(expected_dependencies_files, output_dependencies_files)
240234

241-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
235+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
242236
def test_builds_project_with_remote_dependencies_without_download_dependencies_without_dependencies_dir(
243237
self, runtime
244238
):
@@ -259,7 +253,7 @@ def test_builds_project_with_remote_dependencies_without_download_dependencies_w
259253
output_files = set(os.listdir(self.artifacts_dir))
260254
self.assertEqual(expected_files, output_files)
261255

262-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
256+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
263257
def test_builds_project_without_combine_dependencies(self, runtime):
264258
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
265259

@@ -286,7 +280,7 @@ def test_builds_project_without_combine_dependencies(self, runtime):
286280
output_dependencies_files = set(os.listdir(os.path.join(self.dependencies_dir)))
287281
self.assertNotIn(expected_dependencies_files, output_dependencies_files)
288282

289-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
283+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
290284
def test_build_in_source_with_download_dependencies(self, runtime):
291285
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
292286

@@ -315,7 +309,7 @@ def test_build_in_source_with_download_dependencies(self, runtime):
315309
output_files = set(os.listdir(self.artifacts_dir))
316310
self.assertEqual(expected_files, output_files)
317311

318-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
312+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
319313
def test_build_in_source_with_removed_dependencies(self, runtime):
320314
# run a build with default requirements and confirm dependencies are downloaded
321315
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
@@ -355,7 +349,7 @@ def test_build_in_source_with_removed_dependencies(self, runtime):
355349
self.assertIn(".package-lock.json", set(os.listdir(source_node_modules)))
356350
self.assertNotIn("minimal-request-promise", set(os.listdir(source_node_modules)))
357351

358-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
352+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
359353
def test_build_in_source_with_download_dependencies_local_dependency(self, runtime):
360354
source_dir = os.path.join(self.temp_testdata_dir, "with-local-dependency")
361355

@@ -384,7 +378,7 @@ def test_build_in_source_with_download_dependencies_local_dependency(self, runti
384378
output_files = set(os.listdir(self.artifacts_dir))
385379
self.assertEqual(expected_files, output_files)
386380

387-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
381+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
388382
def test_build_in_source_with_download_dependencies_and_dependencies_dir(self, runtime):
389383
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
390384

@@ -419,7 +413,7 @@ def test_build_in_source_with_download_dependencies_and_dependencies_dir(self, r
419413
output_files = set(os.listdir(self.artifacts_dir))
420414
self.assertEqual(expected_files, output_files)
421415

422-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
416+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
423417
def test_build_in_source_with_download_dependencies_and_dependencies_dir_without_combine_dependencies(
424418
self, runtime
425419
):
@@ -452,7 +446,7 @@ def test_build_in_source_with_download_dependencies_and_dependencies_dir_without
452446
output_files = set(os.listdir(self.artifacts_dir))
453447
self.assertEqual(expected_files, output_files)
454448

455-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
449+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
456450
def test_build_in_source_reuse_saved_dependencies_dir(self, runtime):
457451
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
458452

@@ -508,7 +502,7 @@ def test_build_in_source_reuse_saved_dependencies_dir(self, runtime):
508502
output_files = set(os.listdir(self.artifacts_dir))
509503
self.assertEqual(expected_files, output_files)
510504

511-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
505+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
512506
def test_builds_project_with_manifest_outside_root(self, runtime):
513507
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
514508
source_dir = os.path.join(base_dir, "src")
@@ -531,7 +525,7 @@ def test_builds_project_with_manifest_outside_root(self, runtime):
531525
output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules")))
532526
self.assertEqual(expected_modules, output_modules)
533527

534-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
528+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
535529
def test_builds_project_with_manifest_outside_root_with_reuse_saved_dependencies_dir(self, runtime):
536530
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
537531
source_dir = os.path.join(base_dir, "src")
@@ -578,7 +572,7 @@ def test_builds_project_with_manifest_outside_root_with_reuse_saved_dependencies
578572
output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules")))
579573
self.assertEqual(expected_modules, output_modules)
580574

581-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
575+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
582576
def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_not_combine(self, runtime):
583577
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
584578
source_dir = os.path.join(base_dir, "src")
@@ -603,7 +597,7 @@ def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_not
603597
dependencies_dir_modules = set(os.listdir(os.path.join(self.dependencies_dir, "node_modules")))
604598
self.assertEqual(expected_modules, dependencies_dir_modules)
605599

606-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
600+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
607601
def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_combine(self, runtime):
608602
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
609603
source_dir = os.path.join(base_dir, "src")
@@ -632,7 +626,7 @@ def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_com
632626
dependencies_dir_modules = set(os.listdir(os.path.join(self.dependencies_dir, "node_modules")))
633627
self.assertEqual(expected_modules, dependencies_dir_modules)
634628

635-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
629+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
636630
def test_builds_project_with_manifest_outside_root_and_local_dependencies(self, runtime):
637631
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root-with-local-dependency")
638632
source_dir = os.path.join(base_dir, "src")
@@ -660,7 +654,7 @@ def test_builds_project_with_manifest_outside_root_and_local_dependencies(self,
660654
source_modules = set(os.listdir(os.path.join(source_dir, "node_modules")))
661655
self.assertTrue(all(expected_module in source_modules for expected_module in expected_modules))
662656

663-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
657+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
664658
def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_reuse_saved_dependencies_dir(
665659
self, runtime
666660
):
@@ -715,7 +709,7 @@ def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_r
715709
source_modules = set(os.listdir(os.path.join(source_dir, "node_modules")))
716710
self.assertTrue(all(expected_module in source_modules for expected_module in expected_modules))
717711

718-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
712+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
719713
def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_dependencies_dir_and_not_combine(
720714
self, runtime
721715
):
@@ -747,7 +741,7 @@ def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_d
747741
source_modules = set(os.listdir(os.path.join(source_dir, "node_modules")))
748742
self.assertTrue(all(expected_module in source_modules for expected_module in expected_modules))
749743

750-
@parameterized.expand([("nodejs12.x",), ("nodejs14.x",), ("nodejs16.x",), ("nodejs18.x",)])
744+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
751745
def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_dependencies_dir_and_combine(
752746
self, runtime
753747
):

0 commit comments

Comments
 (0)