netlify / zip-it-and-ship-it

Intelligently prepare Node.js Lambda functions for deployment
https://www.npmjs.com/package/@netlify/zip-it-and-ship-it
MIT License
316 stars 35 forks source link

fix: dont duplicate zip files #1577

Closed Skn0tt closed 1 year ago

Skn0tt commented 1 year ago

πŸŽ‰ Thanks for submitting a pull request! πŸŽ‰

Summary

Closes https://github.com/netlify/pillar-support/issues/733

If a file was identified by NFT as needing to be included, plus the same file was listet in included_files, we are currently calling zipJsFile two times for that. This means the file will be zipped twice, redudantly.

This PR adds a repro + fix for that, so we deduplicate files before including them in the zip.


For us to review and ship your PR efficiently, please perform the following steps:

A picture of a cute animal (not mandatory, but encouraged)

github-actions[bot] commented 1 year ago

⏱ Benchmark results

Comparing with 8d205cac41e94785f037d2885d0d9257e7ecd4d4

largeDepsEsbuild: 2.8s

⬆️ 8.51% increase vs. 8d205cac41e94785f037d2885d0d9257e7ecd4d4

^                                                   3.7s                                                  
β”‚                                                   β”Œβ”€β”€β”                                                  
β”‚                                                   |  |                                                  
β”‚   3.2s                                    3.1s    |  |            3.1s                                  
β”‚   β”Œβ”€β”€β”                                    β”Œβ”€β”€β”    |  |            β”Œβ”€β”€β”                                  
β”‚   |  |            2.8s                    |  |    |  |            |  |                            2.8s  
β”‚ ──┼──┼────2.5sβ”€β”€β”€β”€β”Œβ”€β”€β”β”€β”€β”€β”€2.6s────────────┼──┼────┼──┼────2.6s────┼──┼────2.6s────2.5s────2.5sβ”€β”€β”€β”€β”Œβ”€β”€β”β”€β”€
β”‚   |  |    β”Œβ”€β”€β”    |  |    β”Œβ”€β”€β”    2.4s    |  |    |  |    β”Œβ”€β”€β”    |  |    β”Œβ”€β”€β”    β”Œβ”€β”€β”    β”Œβ”€β”€β”    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    β”Œβ”€β”€β”    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend - T-20 (38cde6efec37b5d60593c15810f756da8b5177e6): 2.6s - T-19 (2211f39741e1088a7c9cde0af57c9bc27108c606): 2.7s - T-18 (54b79e3c973805ed06c5ec4bc0259a122a880913): 2.7s - T-17 (87886247aa8acabd74cf76f13c3465a22bf63078): 3.5s - T-16 (27155874fa16fb54d0c00f71d1e98e2e856642c4): 2.8s - T-15 (0c76ba5d3ebfd00ce70b3bfd382bed28a6885017): 2.6s - T-14 (3092484b754b25c3635f1fb36bae0eaf8f9db6f0): 2.6s - T-13 (b5b9b1a41e3c40b4d41e625131cd5e2c1d8e5dd1): 2.7s - T-12 (22967a315e6f619bcbb4d01eba839868fca47bed): 3.2s - T-11 (af1c7e0fb3c5f24139307a0c5a3f199ff9a11ccd): 2.5s - T-10 (909382c875d5162ca98ef0111dd8da877dba384e): 2.8s - T-9 (56767675a84e1625759a8ac74011288075046754): 2.6s - T-8 (364c92a78cd9bfc3d922a064c69a1d830ec23662): 2.4s - T-7 (c9978755768e1f7c2e8b3df00b64da3731190228): 3.1s - T-6 (8803f81ff71856192f9a1d523eb8e2f489ecc36d): 3.7s - T-5 (627fed0c14b94377ce05668ef711afdf0aae69b3): 2.6s - T-4 (a3e629996493877ab8fb5ea29b30eb12ae3ed83a): 3.1s - T-3 (6b6f02a3e5b95e15452e4d03023ba58f90a7c896): 2.6s - T-2 (11d452bd8c4ef7a25655a4d3f2c612c68f7625ba): 2.5s - T-1 (8d205cac41e94785f037d2885d0d9257e7ecd4d4): 2.5s - **T (current commit): 2.8s**

largeDepsNft: 8.3s

⬆️ 7.73% increase vs. 8d205cac41e94785f037d2885d0d9257e7ecd4d4

^                                                  11.7s                                                  
β”‚                                                   β”Œβ”€β”€β”                                                  
β”‚                                                   |  |                                                  
β”‚   9.9s                                    9.8s    |  |            9.7s                                  
β”‚   β”Œβ”€β”€β”                                    β”Œβ”€β”€β”    |  |            β”Œβ”€β”€β”                                  
β”‚   |  |            8.5s                    |  |    |  |            |  |                                  
β”‚ β”€β”€β”Όβ”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Œβ”€β”€β”β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”Όβ”€β”€β”€β”€β”Όβ”€β”€β”Όβ”€β”€β”€β”€8.2s────┼──┼────────────────────────────8.3s──
β”‚   |  |    7.5s    |  |    7.8s    7.5s    |  |    |  |    β”Œβ”€β”€β”    |  |    7.9s    7.5s    7.6s    β”Œβ”€β”€β”  
β”‚   |  |    β”Œβ”€β”€β”    |  |    β”Œβ”€β”€β”    β”Œβ”€β”€β”    |  |    |  |    |  |    |  |    β”Œβ”€β”€β”    β”Œβ”€β”€β”    β”Œβ”€β”€β”    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend - T-20 (38cde6efec37b5d60593c15810f756da8b5177e6): 8.2s - T-19 (2211f39741e1088a7c9cde0af57c9bc27108c606): 8.4s - T-18 (54b79e3c973805ed06c5ec4bc0259a122a880913): 8.4s - T-17 (87886247aa8acabd74cf76f13c3465a22bf63078): 11.2s - T-16 (27155874fa16fb54d0c00f71d1e98e2e856642c4): 8.7s - T-15 (0c76ba5d3ebfd00ce70b3bfd382bed28a6885017): 8.2s - T-14 (3092484b754b25c3635f1fb36bae0eaf8f9db6f0): 8.3s - T-13 (b5b9b1a41e3c40b4d41e625131cd5e2c1d8e5dd1): 8.2s - T-12 (22967a315e6f619bcbb4d01eba839868fca47bed): 9.9s - T-11 (af1c7e0fb3c5f24139307a0c5a3f199ff9a11ccd): 7.5s - T-10 (909382c875d5162ca98ef0111dd8da877dba384e): 8.5s - T-9 (56767675a84e1625759a8ac74011288075046754): 7.8s - T-8 (364c92a78cd9bfc3d922a064c69a1d830ec23662): 7.5s - T-7 (c9978755768e1f7c2e8b3df00b64da3731190228): 9.8s - T-6 (8803f81ff71856192f9a1d523eb8e2f489ecc36d): 11.7s - T-5 (627fed0c14b94377ce05668ef711afdf0aae69b3): 8.2s - T-4 (a3e629996493877ab8fb5ea29b30eb12ae3ed83a): 9.7s - T-3 (6b6f02a3e5b95e15452e4d03023ba58f90a7c896): 7.9s - T-2 (11d452bd8c4ef7a25655a4d3f2c612c68f7625ba): 7.5s - T-1 (8d205cac41e94785f037d2885d0d9257e7ecd4d4): 7.6s - **T (current commit): 8.3s**

largeDepsZisi: 15.8s

⬆️ 5.31% increase vs. 8d205cac41e94785f037d2885d0d9257e7ecd4d4

^                                                  22.3s                                                  
β”‚                                                   β”Œβ”€β”€β”                                                  
β”‚                                                   |  |                                                  
β”‚  19.3s                                   19.3s    |  |                                                  
β”‚   β”Œβ”€β”€β”                                    β”Œβ”€β”€β”    |  |           18.3s                                  
β”‚   |  |                                    |  |    |  |            β”Œβ”€β”€β”                                  
β”‚ ──┼──┼───────────16.1s────────────────────┼──┼────┼──┼───15.4s────┼──┼───15.2s───────────────────15.8s──
β”‚   |  |    15s     β”Œβ”€β”€β”   14.6s   14.9s    |  |    |  |    β”Œβ”€β”€β”    |  |    β”Œβ”€β”€β”   14.4s   14.9s    β”Œβ”€β”€β”  
β”‚   |  |    β”Œβ”€β”€β”    |  |    β”Œβ”€β”€β”    β”Œβ”€β”€β”    |  |    |  |    |  |    |  |    |  |    β”Œβ”€β”€β”    β”Œβ”€β”€β”    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
β”‚   |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |  |    |β–’β–’|  
└───┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴────┴──┴──>
    T-12    T-11    T-10    T-9     T-8     T-7     T-6     T-5     T-4     T-3     T-2     T-1      T    
Legend - T-20 (38cde6efec37b5d60593c15810f756da8b5177e6): 15.8s - T-19 (2211f39741e1088a7c9cde0af57c9bc27108c606): 15.6s - T-18 (54b79e3c973805ed06c5ec4bc0259a122a880913): 16.4s - T-17 (87886247aa8acabd74cf76f13c3465a22bf63078): 21s - T-16 (27155874fa16fb54d0c00f71d1e98e2e856642c4): 16.9s - T-15 (0c76ba5d3ebfd00ce70b3bfd382bed28a6885017): 16.2s - T-14 (3092484b754b25c3635f1fb36bae0eaf8f9db6f0): 16.1s - T-13 (b5b9b1a41e3c40b4d41e625131cd5e2c1d8e5dd1): 15.8s - T-12 (22967a315e6f619bcbb4d01eba839868fca47bed): 19.3s - T-11 (af1c7e0fb3c5f24139307a0c5a3f199ff9a11ccd): 15s - T-10 (909382c875d5162ca98ef0111dd8da877dba384e): 16.1s - T-9 (56767675a84e1625759a8ac74011288075046754): 14.6s - T-8 (364c92a78cd9bfc3d922a064c69a1d830ec23662): 14.9s - T-7 (c9978755768e1f7c2e8b3df00b64da3731190228): 19.3s - T-6 (8803f81ff71856192f9a1d523eb8e2f489ecc36d): 22.3s - T-5 (627fed0c14b94377ce05668ef711afdf0aae69b3): 15.4s - T-4 (a3e629996493877ab8fb5ea29b30eb12ae3ed83a): 18.3s - T-3 (6b6f02a3e5b95e15452e4d03023ba58f90a7c896): 15.2s - T-2 (11d452bd8c4ef7a25655a4d3f2c612c68f7625ba): 14.4s - T-1 (8d205cac41e94785f037d2885d0d9257e7ecd4d4): 14.9s - **T (current commit): 15.8s**