@rushstack/rush-http-build-cache-plugin 5.97.1 → 5.98.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.heft/build-cache/jest-cache/haste-map-bae913f9b9aa720eb4deeae0a60a4b27-22ae7f4ce9de4306889d8c05e5cc39b9-f6b1af01a3130057bdfe3d86807211f9 +0 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{9d/commons_9d513d1d600f9112f73547da918dcbb7 → 2e/commons_2e52897dfe4222d991674613f5b35882} +356 -314
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/34/PrefixProxyTerminalProvider_34b4603b9c4455de1c3cc05820149fdd +65 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{53/index_53d9d5a344c3984994c801733764f503 → 46/index_46761981528d09d1a0e438f06cd2c548} +6 -2
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{06/ConfigurationFile_06d7f35feb0bd944d9b9a2a4d9e112c8 → 57/ConfigurationFile_57c950e8ef4673e11bff94304a50823c} +10 -4
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{68/rushlib_68c59fa059ba441c9c6883bcfed4a8d2 → 69/rushlib_695f6e29167e91482e2906a8d09b3a5a} +17 -6
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/HttpBuildCacheProvidertest_8a1598e1f1b42d6933964acfb7612893 +116 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/8a/HttpBuildCacheProvidertest_8a1598e1f1b42d6933964acfb7612893.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a3/RushHttpBuildCachePlugin_a3e8a9bb172ff361907e770dcf3268be +1551 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/a3/RushHttpBuildCachePlugin_a3e8a9bb172ff361907e770dcf3268be.map +1 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ba/TerminalWritable_ba71b4b7bfe6a26c85f4fd0245057a0a +54 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/{5d/Text_5da85b5db9a2f06bbe29cdcd91e6fbca → df/Text_df57ddd200e4237e617fc183dcb5fe67} +7 -1
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ec/HttpBuildCacheProvider_ecceab34e8340fa24dde11b618ffa8a4 +4668 -0
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/ec/HttpBuildCacheProvider_ecceab34e8340fa24dde11b618ffa8a4.map +1 -0
- package/.heft/build-cache/jest-cache/perf-cache-bae913f9b9aa720eb4deeae0a60a4b27-da39a3ee5e6b4b0d3255bfef95601890 +1 -1
- package/.rush/temp/operation/_phase_build/state.json +1 -1
- package/.rush/temp/operation/_phase_test/all.log +14 -14
- package/.rush/temp/operation/_phase_test/state.json +1 -1
- package/.rush/temp/package-deps__phase_build.json +3 -3
- package/.rush/temp/package-deps__phase_test.json +3 -3
- package/.rush/temp/{rushstack+rush-http-build-cache-plugin-_phase_build-646439b80a2010050f5b4b8a916e50afae04c3ab.log → rushstack+rush-http-build-cache-plugin-_phase_build-08118e08afc6d454e5623f20498fd64b5e3e9051.log} +2 -2
- package/lib/HttpBuildCacheProvider.d.ts +2 -0
- package/lib/HttpBuildCacheProvider.d.ts.map +1 -1
- package/lib/HttpBuildCacheProvider.js +26 -7
- package/lib/HttpBuildCacheProvider.js.map +1 -1
- package/lib/RushHttpBuildCachePlugin.d.ts.map +1 -1
- package/lib/RushHttpBuildCachePlugin.js +28 -4
- package/lib/RushHttpBuildCachePlugin.js.map +1 -1
- package/lib/test/HttpBuildCacheProvider.test.d.ts.map +1 -0
- package/lib/{HttpBuildCacheProvider.test.js → test/HttpBuildCacheProvider.test.js} +46 -3
- package/lib/test/HttpBuildCacheProvider.test.js.map +1 -0
- package/package.json +6 -6
- package/rush-logs/rush-http-build-cache-plugin._phase_test.log +14 -14
- package/src/HttpBuildCacheProvider.ts +36 -7
- package/src/RushHttpBuildCachePlugin.ts +23 -28
- package/src/test/HttpBuildCacheProvider.test.ts +115 -0
- package/temp/coverage/clover.xml +117 -109
- package/temp/coverage/coverage-final.json +2 -2
- package/temp/coverage/lcov-report/HttpBuildCacheProvider.ts.html +166 -79
- package/temp/coverage/lcov-report/RushHttpBuildCachePlugin.ts.html +29 -44
- package/temp/coverage/lcov-report/index.html +24 -24
- package/temp/coverage/lcov-report/index.ts.html +1 -1
- package/temp/coverage/lcov.info +236 -218
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941 +0 -4367
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e5/HttpBuildCacheProvider_e53bd002cf44ae62693f20b8c4682941.map +0 -1
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247 +0 -362
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/e6/RushHttpBuildCachePlugin_e69b4b7cd4f95aa49455690c88f00247.map +0 -1
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa +0 -73
- package/.heft/build-cache/jest-cache/jest-transform-cache-bae913f9b9aa720eb4deeae0a60a4b27-474488b31a4a940a3990e9eaf06f1647/f7/HttpBuildCacheProvidertest_f710af633835df558cad54cb165c14fa.map +0 -1
- package/lib/HttpBuildCacheProvider.test.d.ts.map +0 -1
- package/lib/HttpBuildCacheProvider.test.js.map +0 -1
- package/src/HttpBuildCacheProvider.test.ts +0 -58
- /package/lib/{HttpBuildCacheProvider.test.d.ts → test/HttpBuildCacheProvider.test.d.ts} +0 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">58.26% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>74/127</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">45.55% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>41/90</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">61.11% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>11/18</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">58.26% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>74/127</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -458,7 +458,36 @@
|
|
|
458
458
|
<a name='L393'></a><a href='#L393'>393</a>
|
|
459
459
|
<a name='L394'></a><a href='#L394'>394</a>
|
|
460
460
|
<a name='L395'></a><a href='#L395'>395</a>
|
|
461
|
-
<a name='L396'></a><a href='#L396'>396</a
|
|
461
|
+
<a name='L396'></a><a href='#L396'>396</a>
|
|
462
|
+
<a name='L397'></a><a href='#L397'>397</a>
|
|
463
|
+
<a name='L398'></a><a href='#L398'>398</a>
|
|
464
|
+
<a name='L399'></a><a href='#L399'>399</a>
|
|
465
|
+
<a name='L400'></a><a href='#L400'>400</a>
|
|
466
|
+
<a name='L401'></a><a href='#L401'>401</a>
|
|
467
|
+
<a name='L402'></a><a href='#L402'>402</a>
|
|
468
|
+
<a name='L403'></a><a href='#L403'>403</a>
|
|
469
|
+
<a name='L404'></a><a href='#L404'>404</a>
|
|
470
|
+
<a name='L405'></a><a href='#L405'>405</a>
|
|
471
|
+
<a name='L406'></a><a href='#L406'>406</a>
|
|
472
|
+
<a name='L407'></a><a href='#L407'>407</a>
|
|
473
|
+
<a name='L408'></a><a href='#L408'>408</a>
|
|
474
|
+
<a name='L409'></a><a href='#L409'>409</a>
|
|
475
|
+
<a name='L410'></a><a href='#L410'>410</a>
|
|
476
|
+
<a name='L411'></a><a href='#L411'>411</a>
|
|
477
|
+
<a name='L412'></a><a href='#L412'>412</a>
|
|
478
|
+
<a name='L413'></a><a href='#L413'>413</a>
|
|
479
|
+
<a name='L414'></a><a href='#L414'>414</a>
|
|
480
|
+
<a name='L415'></a><a href='#L415'>415</a>
|
|
481
|
+
<a name='L416'></a><a href='#L416'>416</a>
|
|
482
|
+
<a name='L417'></a><a href='#L417'>417</a>
|
|
483
|
+
<a name='L418'></a><a href='#L418'>418</a>
|
|
484
|
+
<a name='L419'></a><a href='#L419'>419</a>
|
|
485
|
+
<a name='L420'></a><a href='#L420'>420</a>
|
|
486
|
+
<a name='L421'></a><a href='#L421'>421</a>
|
|
487
|
+
<a name='L422'></a><a href='#L422'>422</a>
|
|
488
|
+
<a name='L423'></a><a href='#L423'>423</a>
|
|
489
|
+
<a name='L424'></a><a href='#L424'>424</a>
|
|
490
|
+
<a name='L425'></a><a href='#L425'>425</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
462
491
|
<span class="cline-any cline-yes">1x</span>
|
|
463
492
|
<span class="cline-any cline-neutral"> </span>
|
|
464
493
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -501,6 +530,10 @@
|
|
|
501
530
|
<span class="cline-any cline-neutral"> </span>
|
|
502
531
|
<span class="cline-any cline-neutral"> </span>
|
|
503
532
|
<span class="cline-any cline-neutral"> </span>
|
|
533
|
+
<span class="cline-any cline-neutral"> </span>
|
|
534
|
+
<span class="cline-any cline-yes">1x</span>
|
|
535
|
+
<span class="cline-any cline-yes">1x</span>
|
|
536
|
+
<span class="cline-any cline-neutral"> </span>
|
|
504
537
|
<span class="cline-any cline-yes">1x</span>
|
|
505
538
|
<span class="cline-any cline-neutral"> </span>
|
|
506
539
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -515,29 +548,31 @@
|
|
|
515
548
|
<span class="cline-any cline-neutral"> </span>
|
|
516
549
|
<span class="cline-any cline-neutral"> </span>
|
|
517
550
|
<span class="cline-any cline-neutral"> </span>
|
|
551
|
+
<span class="cline-any cline-neutral"> </span>
|
|
518
552
|
<span class="cline-any cline-no"> </span>
|
|
519
553
|
<span class="cline-any cline-neutral"> </span>
|
|
520
554
|
<span class="cline-any cline-neutral"> </span>
|
|
521
555
|
<span class="cline-any cline-neutral"> </span>
|
|
522
|
-
<span class="cline-any cline-yes">
|
|
523
|
-
<span class="cline-any cline-yes">
|
|
524
|
-
<span class="cline-any cline-yes">
|
|
556
|
+
<span class="cline-any cline-yes">2x</span>
|
|
557
|
+
<span class="cline-any cline-yes">2x</span>
|
|
558
|
+
<span class="cline-any cline-yes">2x</span>
|
|
525
559
|
<span class="cline-any cline-neutral"> </span>
|
|
526
|
-
<span class="cline-any cline-yes">
|
|
527
|
-
<span class="cline-any cline-yes">
|
|
528
|
-
<span class="cline-any cline-yes">
|
|
529
|
-
<span class="cline-any cline-yes">
|
|
530
|
-
<span class="cline-any cline-yes">
|
|
531
|
-
<span class="cline-any cline-yes">
|
|
532
|
-
<span class="cline-any cline-yes">
|
|
560
|
+
<span class="cline-any cline-yes">2x</span>
|
|
561
|
+
<span class="cline-any cline-yes">2x</span>
|
|
562
|
+
<span class="cline-any cline-yes">2x</span>
|
|
563
|
+
<span class="cline-any cline-yes">2x</span>
|
|
564
|
+
<span class="cline-any cline-yes">2x</span>
|
|
565
|
+
<span class="cline-any cline-yes">2x</span>
|
|
566
|
+
<span class="cline-any cline-yes">2x</span>
|
|
567
|
+
<span class="cline-any cline-yes">2x</span>
|
|
533
568
|
<span class="cline-any cline-neutral"> </span>
|
|
534
569
|
<span class="cline-any cline-neutral"> </span>
|
|
535
570
|
<span class="cline-any cline-neutral"> </span>
|
|
536
571
|
<span class="cline-any cline-neutral"> </span>
|
|
537
572
|
<span class="cline-any cline-neutral"> </span>
|
|
538
573
|
<span class="cline-any cline-neutral"> </span>
|
|
539
|
-
<span class="cline-any cline-yes">
|
|
540
|
-
<span class="cline-any cline-yes">
|
|
574
|
+
<span class="cline-any cline-yes">2x</span>
|
|
575
|
+
<span class="cline-any cline-yes">2x</span>
|
|
541
576
|
<span class="cline-any cline-neutral"> </span>
|
|
542
577
|
<span class="cline-any cline-neutral"> </span>
|
|
543
578
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -546,7 +581,8 @@
|
|
|
546
581
|
<span class="cline-any cline-neutral"> </span>
|
|
547
582
|
<span class="cline-any cline-neutral"> </span>
|
|
548
583
|
<span class="cline-any cline-neutral"> </span>
|
|
549
|
-
<span class="cline-any cline-
|
|
584
|
+
<span class="cline-any cline-neutral"> </span>
|
|
585
|
+
<span class="cline-any cline-yes">1x</span>
|
|
550
586
|
<span class="cline-any cline-neutral"> </span>
|
|
551
587
|
<span class="cline-any cline-yes">1x</span>
|
|
552
588
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -575,6 +611,7 @@
|
|
|
575
611
|
<span class="cline-any cline-neutral"> </span>
|
|
576
612
|
<span class="cline-any cline-neutral"> </span>
|
|
577
613
|
<span class="cline-any cline-neutral"> </span>
|
|
614
|
+
<span class="cline-any cline-neutral"> </span>
|
|
578
615
|
<span class="cline-any cline-no"> </span>
|
|
579
616
|
<span class="cline-any cline-neutral"> </span>
|
|
580
617
|
<span class="cline-any cline-no"> </span>
|
|
@@ -637,17 +674,17 @@
|
|
|
637
674
|
<span class="cline-any cline-neutral"> </span>
|
|
638
675
|
<span class="cline-any cline-neutral"> </span>
|
|
639
676
|
<span class="cline-any cline-neutral"> </span>
|
|
677
|
+
<span class="cline-any cline-yes">5x</span>
|
|
640
678
|
<span class="cline-any cline-yes">2x</span>
|
|
641
|
-
<span class="cline-any cline-yes">1x</span>
|
|
642
679
|
<span class="cline-any cline-neutral"> </span>
|
|
643
|
-
<span class="cline-any cline-yes">
|
|
680
|
+
<span class="cline-any cline-yes">2x</span>
|
|
644
681
|
<span class="cline-any cline-no"> </span>
|
|
645
682
|
<span class="cline-any cline-neutral"> </span>
|
|
646
683
|
<span class="cline-any cline-neutral"> </span>
|
|
647
|
-
<span class="cline-any cline-yes">
|
|
684
|
+
<span class="cline-any cline-yes">2x</span>
|
|
648
685
|
<span class="cline-any cline-neutral"> </span>
|
|
649
686
|
<span class="cline-any cline-neutral"> </span>
|
|
650
|
-
<span class="cline-any cline-yes">
|
|
687
|
+
<span class="cline-any cline-yes">5x</span>
|
|
651
688
|
<span class="cline-any cline-neutral"> </span>
|
|
652
689
|
<span class="cline-any cline-neutral"> </span>
|
|
653
690
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -659,43 +696,64 @@
|
|
|
659
696
|
<span class="cline-any cline-neutral"> </span>
|
|
660
697
|
<span class="cline-any cline-neutral"> </span>
|
|
661
698
|
<span class="cline-any cline-neutral"> </span>
|
|
662
|
-
<span class="cline-any cline-yes">2x</span>
|
|
663
|
-
<span class="cline-any cline-yes">2x</span>
|
|
664
|
-
<span class="cline-any cline-yes">2x</span>
|
|
665
|
-
<span class="cline-any cline-yes">1x</span>
|
|
666
699
|
<span class="cline-any cline-neutral"> </span>
|
|
667
|
-
<span class="cline-any cline-yes">
|
|
668
|
-
<span class="cline-any cline-yes">
|
|
700
|
+
<span class="cline-any cline-yes">5x</span>
|
|
701
|
+
<span class="cline-any cline-yes">5x</span>
|
|
702
|
+
<span class="cline-any cline-yes">5x</span>
|
|
703
|
+
<span class="cline-any cline-yes">4x</span>
|
|
704
|
+
<span class="cline-any cline-neutral"> </span>
|
|
705
|
+
<span class="cline-any cline-yes">4x</span>
|
|
706
|
+
<span class="cline-any cline-yes">4x</span>
|
|
669
707
|
<span class="cline-any cline-no"> </span>
|
|
670
708
|
<span class="cline-any cline-neutral"> </span>
|
|
671
709
|
<span class="cline-any cline-neutral"> </span>
|
|
672
|
-
<span class="cline-any cline-yes">
|
|
710
|
+
<span class="cline-any cline-yes">4x</span>
|
|
673
711
|
<span class="cline-any cline-no"> </span>
|
|
674
712
|
<span class="cline-any cline-no"> </span>
|
|
675
713
|
<span class="cline-any cline-neutral"> </span>
|
|
676
714
|
<span class="cline-any cline-neutral"> </span>
|
|
677
715
|
<span class="cline-any cline-neutral"> </span>
|
|
678
|
-
<span class="cline-any cline-yes">
|
|
716
|
+
<span class="cline-any cline-yes">4x</span>
|
|
679
717
|
<span class="cline-any cline-neutral"> </span>
|
|
680
|
-
<span class="cline-any cline-yes">
|
|
718
|
+
<span class="cline-any cline-yes">4x</span>
|
|
681
719
|
<span class="cline-any cline-neutral"> </span>
|
|
682
|
-
<span class="cline-any cline-yes">
|
|
720
|
+
<span class="cline-any cline-yes">4x</span>
|
|
721
|
+
<span class="cline-any cline-neutral"> </span>
|
|
722
|
+
<span class="cline-any cline-neutral"> </span>
|
|
723
|
+
<span class="cline-any cline-neutral"> </span>
|
|
724
|
+
<span class="cline-any cline-neutral"> </span>
|
|
725
|
+
<span class="cline-any cline-neutral"> </span>
|
|
726
|
+
<span class="cline-any cline-neutral"> </span>
|
|
727
|
+
<span class="cline-any cline-yes">4x</span>
|
|
728
|
+
<span class="cline-any cline-yes">4x</span>
|
|
729
|
+
<span class="cline-any cline-neutral"> </span>
|
|
730
|
+
<span class="cline-any cline-yes">4x</span>
|
|
683
731
|
<span class="cline-any cline-neutral"> </span>
|
|
684
732
|
<span class="cline-any cline-neutral"> </span>
|
|
685
733
|
<span class="cline-any cline-neutral"> </span>
|
|
686
734
|
<span class="cline-any cline-neutral"> </span>
|
|
687
735
|
<span class="cline-any cline-neutral"> </span>
|
|
688
736
|
<span class="cline-any cline-neutral"> </span>
|
|
689
|
-
<span class="cline-any cline-yes">1x</span>
|
|
690
|
-
<span class="cline-any cline-yes">1x</span>
|
|
691
737
|
<span class="cline-any cline-neutral"> </span>
|
|
692
738
|
<span class="cline-any cline-neutral"> </span>
|
|
693
739
|
<span class="cline-any cline-neutral"> </span>
|
|
694
740
|
<span class="cline-any cline-yes">1x</span>
|
|
695
741
|
<span class="cline-any cline-neutral"> </span>
|
|
696
742
|
<span class="cline-any cline-neutral"> </span>
|
|
697
|
-
<span class="cline-any cline-
|
|
698
|
-
<span class="cline-any cline-
|
|
743
|
+
<span class="cline-any cline-yes">3x</span>
|
|
744
|
+
<span class="cline-any cline-neutral"> </span>
|
|
745
|
+
<span class="cline-any cline-neutral"> </span>
|
|
746
|
+
<span class="cline-any cline-neutral"> </span>
|
|
747
|
+
<span class="cline-any cline-yes">2x</span>
|
|
748
|
+
<span class="cline-any cline-yes">2x</span>
|
|
749
|
+
<span class="cline-any cline-neutral"> </span>
|
|
750
|
+
<span class="cline-any cline-yes">2x</span>
|
|
751
|
+
<span class="cline-any cline-neutral"> </span>
|
|
752
|
+
<span class="cline-any cline-yes">2x</span>
|
|
753
|
+
<span class="cline-any cline-neutral"> </span>
|
|
754
|
+
<span class="cline-any cline-neutral"> </span>
|
|
755
|
+
<span class="cline-any cline-yes">1x</span>
|
|
756
|
+
<span class="cline-any cline-yes">1x</span>
|
|
699
757
|
<span class="cline-any cline-neutral"> </span>
|
|
700
758
|
<span class="cline-any cline-neutral"> </span>
|
|
701
759
|
<span class="cline-any cline-no"> </span>
|
|
@@ -714,17 +772,17 @@
|
|
|
714
772
|
<span class="cline-any cline-neutral"> </span>
|
|
715
773
|
<span class="cline-any cline-neutral"> </span>
|
|
716
774
|
<span class="cline-any cline-neutral"> </span>
|
|
717
|
-
<span class="cline-any cline-yes">
|
|
775
|
+
<span class="cline-any cline-yes">5x</span>
|
|
718
776
|
<span class="cline-any cline-no"> </span>
|
|
719
777
|
<span class="cline-any cline-neutral"> </span>
|
|
720
778
|
<span class="cline-any cline-neutral"> </span>
|
|
721
|
-
<span class="cline-any cline-yes">
|
|
779
|
+
<span class="cline-any cline-yes">5x</span>
|
|
722
780
|
<span class="cline-any cline-neutral"> </span>
|
|
723
|
-
<span class="cline-any cline-yes">
|
|
724
|
-
<span class="cline-any cline-yes">
|
|
781
|
+
<span class="cline-any cline-yes">5x</span>
|
|
782
|
+
<span class="cline-any cline-yes">5x</span>
|
|
725
783
|
<span class="cline-any cline-neutral"> </span>
|
|
726
784
|
<span class="cline-any cline-neutral"> </span>
|
|
727
|
-
<span class="cline-any cline-yes">
|
|
785
|
+
<span class="cline-any cline-yes">5x</span>
|
|
728
786
|
<span class="cline-any cline-yes">1x</span>
|
|
729
787
|
<span class="cline-any cline-neutral"> </span>
|
|
730
788
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -738,22 +796,22 @@
|
|
|
738
796
|
<span class="cline-any cline-neutral"> </span>
|
|
739
797
|
<span class="cline-any cline-neutral"> </span>
|
|
740
798
|
<span class="cline-any cline-neutral"> </span>
|
|
741
|
-
<span class="cline-any cline-yes">
|
|
799
|
+
<span class="cline-any cline-yes">4x</span>
|
|
742
800
|
<span class="cline-any cline-neutral"> </span>
|
|
743
801
|
<span class="cline-any cline-neutral"> </span>
|
|
744
802
|
<span class="cline-any cline-neutral"> </span>
|
|
745
803
|
<span class="cline-any cline-neutral"> </span>
|
|
746
804
|
<span class="cline-any cline-neutral"> </span>
|
|
747
|
-
<span class="cline-any cline-yes">
|
|
805
|
+
<span class="cline-any cline-yes">5x</span>
|
|
748
806
|
<span class="cline-any cline-neutral"> </span>
|
|
749
807
|
<span class="cline-any cline-neutral"> </span>
|
|
750
808
|
<span class="cline-any cline-neutral"> </span>
|
|
751
809
|
<span class="cline-any cline-neutral"> </span>
|
|
752
|
-
<span class="cline-any cline-yes">
|
|
810
|
+
<span class="cline-any cline-yes">5x</span>
|
|
753
811
|
<span class="cline-any cline-neutral"> </span>
|
|
754
812
|
<span class="cline-any cline-neutral"> </span>
|
|
755
813
|
<span class="cline-any cline-neutral"> </span>
|
|
756
|
-
<span class="cline-any cline-yes">
|
|
814
|
+
<span class="cline-any cline-yes">5x</span>
|
|
757
815
|
<span class="cline-any cline-no"> </span>
|
|
758
816
|
<span class="cline-any cline-no"> </span>
|
|
759
817
|
<span class="cline-any cline-no"> </span>
|
|
@@ -762,11 +820,11 @@
|
|
|
762
820
|
<span class="cline-any cline-neutral"> </span>
|
|
763
821
|
<span class="cline-any cline-neutral"> </span>
|
|
764
822
|
<span class="cline-any cline-neutral"> </span>
|
|
765
|
-
<span class="cline-any cline-
|
|
823
|
+
<span class="cline-any cline-yes">1x</span>
|
|
766
824
|
<span class="cline-any cline-no"> </span>
|
|
767
825
|
<span class="cline-any cline-neutral"> </span>
|
|
768
826
|
<span class="cline-any cline-neutral"> </span>
|
|
769
|
-
<span class="cline-any cline-
|
|
827
|
+
<span class="cline-any cline-yes">1x</span>
|
|
770
828
|
<span class="cline-any cline-neutral"> </span>
|
|
771
829
|
<span class="cline-any cline-neutral"> </span>
|
|
772
830
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -805,7 +863,7 @@
|
|
|
805
863
|
<span class="cline-any cline-neutral"> </span>
|
|
806
864
|
<span class="cline-any cline-neutral"> </span>
|
|
807
865
|
<span class="cline-any cline-neutral"> </span>
|
|
808
|
-
<span class="cline-any cline-
|
|
866
|
+
<span class="cline-any cline-yes">1x</span>
|
|
809
867
|
<span class="cline-any cline-neutral"> </span>
|
|
810
868
|
<span class="cline-any cline-neutral"> </span>
|
|
811
869
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -815,15 +873,15 @@
|
|
|
815
873
|
<span class="cline-any cline-neutral"> </span>
|
|
816
874
|
<span class="cline-any cline-neutral"> </span>
|
|
817
875
|
<span class="cline-any cline-neutral"> </span>
|
|
818
|
-
<span class="cline-any cline-
|
|
876
|
+
<span class="cline-any cline-yes">1x</span>
|
|
819
877
|
<span class="cline-any cline-neutral"> </span>
|
|
820
878
|
<span class="cline-any cline-no"> </span>
|
|
821
879
|
<span class="cline-any cline-no"> </span>
|
|
822
880
|
<span class="cline-any cline-neutral"> </span>
|
|
823
881
|
<span class="cline-any cline-neutral"> </span>
|
|
824
882
|
<span class="cline-any cline-neutral"> </span>
|
|
825
|
-
<span class="cline-any cline-
|
|
826
|
-
<span class="cline-any cline-
|
|
883
|
+
<span class="cline-any cline-yes">1x</span>
|
|
884
|
+
<span class="cline-any cline-yes">1x</span>
|
|
827
885
|
<span class="cline-any cline-neutral"> </span>
|
|
828
886
|
<span class="cline-any cline-neutral"> </span>
|
|
829
887
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -853,7 +911,7 @@
|
|
|
853
911
|
<span class="cline-any cline-neutral"> </span>
|
|
854
912
|
<span class="cline-any cline-neutral"> </span>
|
|
855
913
|
<span class="cline-any cline-neutral"> </span>
|
|
856
|
-
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ITerminal, Executable } from '@rushstack/node-core-library';
|
|
914
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { ITerminal, Executable, Async } from '@rushstack/node-core-library';
|
|
857
915
|
import {
|
|
858
916
|
ICloudBuildCacheProvider,
|
|
859
917
|
ICredentialCacheEntry,
|
|
@@ -889,6 +947,7 @@ export interface IHttpBuildCacheProviderOptions {
|
|
|
889
947
|
url: string;
|
|
890
948
|
tokenHandler?: IHttpBuildCacheTokenHandler;
|
|
891
949
|
uploadMethod?: string;
|
|
950
|
+
minHttpRetryDelayMs?: number;
|
|
892
951
|
headers?: Record<string, string>;
|
|
893
952
|
cacheKeyPrefix?: string;
|
|
894
953
|
isCacheWriteAllowed: boolean;
|
|
@@ -896,6 +955,9 @@ export interface IHttpBuildCacheProviderOptions {
|
|
|
896
955
|
rushProjectRoot: string;
|
|
897
956
|
}
|
|
898
957
|
|
|
958
|
+
const MAX_HTTP_CACHE_ATTEMPTS: number = 3;
|
|
959
|
+
const DEFAULT_MIN_HTTP_RETRY_DELAY_MS = 2500;
|
|
960
|
+
|
|
899
961
|
export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
900
962
|
private readonly _pluginName: string;
|
|
901
963
|
private readonly _rushSession: RushSession;
|
|
@@ -907,6 +969,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
907
969
|
private readonly _headers: Record<string, string>;
|
|
908
970
|
private readonly _cacheKeyPrefix: string;
|
|
909
971
|
private readonly _tokenHandler: IHttpBuildCacheTokenHandler | undefined;
|
|
972
|
+
private readonly _minHttpRetryDelayMs: number;
|
|
910
973
|
private __credentialCacheId: string | undefined;
|
|
911
974
|
|
|
912
975
|
<span class="fstat-no" title="function not covered" > public get i</span>sCacheWriteAllowed(): boolean {
|
|
@@ -925,6 +988,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
925
988
|
this._headers = options.headers<span class="branch-0 cbranch-no" title="branch not covered" > ?? {</span>};
|
|
926
989
|
this._tokenHandler = options.tokenHandler;
|
|
927
990
|
this._cacheKeyPrefix = options.cacheKeyPrefix<span class="branch-0 cbranch-no" title="branch not covered" > ?? '</span>';
|
|
991
|
+
this._minHttpRetryDelayMs = options.minHttpRetryDelayMs ?? <span class="branch-1 cbranch-no" title="branch not covered" >DEFAULT_MIN_HTTP_RETRY_DELAY_MS;</span>
|
|
928
992
|
}
|
|
929
993
|
|
|
930
994
|
public async tryGetCacheEntryBufferByIdAsync(
|
|
@@ -938,10 +1002,11 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
938
1002
|
method: 'GET',
|
|
939
1003
|
body: undefined,
|
|
940
1004
|
warningText: 'Could not get cache entry',
|
|
941
|
-
readBody: true
|
|
1005
|
+
readBody: true,
|
|
1006
|
+
maxAttempts: MAX_HTTP_CACHE_ATTEMPTS
|
|
942
1007
|
});
|
|
943
1008
|
|
|
944
|
-
<span class="
|
|
1009
|
+
return Buffer.isBuffer(result) ? <span class="branch-0 cbranch-no" title="branch not covered" >result </span>: undefined;
|
|
945
1010
|
} catch (e) {
|
|
946
1011
|
terminal.writeWarningLine(`Error getting cache entry: ${e}`);
|
|
947
1012
|
return undefined;
|
|
@@ -967,7 +1032,8 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
967
1032
|
method: this._uploadMethod,
|
|
968
1033
|
body: objectBuffer,
|
|
969
1034
|
warningText: 'Could not write cache entry',
|
|
970
|
-
readBody: false
|
|
1035
|
+
readBody: false,
|
|
1036
|
+
maxAttempts: MAX_HTTP_CACHE_ATTEMPTS
|
|
971
1037
|
});
|
|
972
1038
|
|
|
973
1039
|
<span class="cstat-no" title="statement not covered" > return result !== false;</span>
|
|
@@ -1052,6 +1118,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
1052
1118
|
body: BodyInit | undefined;
|
|
1053
1119
|
warningText: string;
|
|
1054
1120
|
readBody: boolean;
|
|
1121
|
+
maxAttempts: number;
|
|
1055
1122
|
credentialOptions?: CredentialsOptions;
|
|
1056
1123
|
}): Promise<Buffer | boolean> {
|
|
1057
1124
|
const { terminal, relUrl, method, body, warningText, readBody, credentialOptions } = options;
|
|
@@ -1082,15 +1149,35 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
1082
1149
|
});
|
|
1083
1150
|
|
|
1084
1151
|
if (!response.ok) {
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1152
|
+
const isNonCredentialResponse = response.status >= 500 && response.status < 600;
|
|
1153
|
+
|
|
1154
|
+
if (
|
|
1155
|
+
!isNonCredentialResponse &&
|
|
1156
|
+
typeof credentials !== 'string' &&
|
|
1157
|
+
safeCredentialOptions === CredentialsOptions.Optional
|
|
1158
|
+
) {
|
|
1159
|
+
// If we don't already have credentials yet, and we got a response from the server
|
|
1160
|
+
// that is a "normal" failure (4xx), then we assume that credentials are probably
|
|
1161
|
+
// required. Re-attempt the request, requiring credentials this time.
|
|
1162
|
+
//
|
|
1163
|
+
// This counts as part of the "first attempt", so it is not included in the max attempts
|
|
1089
1164
|
return await this._http({ ...options, credentialOptions: CredentialsOptions.Required });
|
|
1090
1165
|
}
|
|
1091
1166
|
|
|
1092
|
-
|
|
1093
|
-
|
|
1167
|
+
if (options.maxAttempts > 1) {
|
|
1168
|
+
// Pause a bit before retrying in case the server is busy
|
|
1169
|
+
// Add some random jitter to the retry so we can spread out load on the remote service
|
|
1170
|
+
// A proper solution might add exponential back off in case the retry count is high (10 or more)
|
|
1171
|
+
const factor = 1.0 + Math.random(); // A random number between 1.0 and 2.0
|
|
1172
|
+
const retryDelay = Math.floor(factor * this._minHttpRetryDelayMs);
|
|
1173
|
+
|
|
1174
|
+
await Async.sleep(retryDelay);
|
|
1175
|
+
|
|
1176
|
+
return await this._http({ ...options, maxAttempts: options.maxAttempts - 1 });
|
|
1177
|
+
}
|
|
1178
|
+
|
|
1179
|
+
this._reportFailure(terminal, method, response, false, warningText);
|
|
1180
|
+
return false;
|
|
1094
1181
|
}
|
|
1095
1182
|
|
|
1096
1183
|
const result: Buffer | boolean = <span class="cstat-no" title="statement not covered" >readBody ? Buffer.from(await response.arrayBuffer()) : true;</span>
|
|
@@ -1156,12 +1243,12 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
1156
1243
|
}
|
|
1157
1244
|
}
|
|
1158
1245
|
|
|
1159
|
-
private
|
|
1160
|
-
|
|
1246
|
+
private _getFailureType(requestMethod: string, response: Response, isRedirect: boolean): FailureType {
|
|
1247
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (response.ok) {
|
|
1161
1248
|
<span class="cstat-no" title="statement not covered" > return FailureType.None;</span>
|
|
1162
1249
|
}
|
|
1163
1250
|
|
|
1164
|
-
|
|
1251
|
+
switch (response.status) {
|
|
1165
1252
|
case 503: {
|
|
1166
1253
|
// We select 503 specifically because this represents "service unavailable" and
|
|
1167
1254
|
// "rate limit throttle" errors, which are transient issues.
|
|
@@ -1200,38 +1287,38 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
1200
1287
|
}
|
|
1201
1288
|
|
|
1202
1289
|
// Let dev builds succeed, let Prod builds fail
|
|
1203
|
-
|
|
1290
|
+
return FailureType.Warning;
|
|
1204
1291
|
}
|
|
1205
1292
|
|
|
1206
|
-
private
|
|
1293
|
+
private _reportFailure(
|
|
1207
1294
|
terminal: ITerminal,
|
|
1208
1295
|
requestMethod: string,
|
|
1209
1296
|
response: Response,
|
|
1210
1297
|
isRedirect: boolean,
|
|
1211
1298
|
message: string
|
|
1212
1299
|
): void {
|
|
1213
|
-
|
|
1214
|
-
default: {
|
|
1300
|
+
switch (this._getFailureType(requestMethod, response, isRedirect)) {
|
|
1301
|
+
<span class="branch-0 cbranch-no" title="branch not covered" > default: {</span>
|
|
1215
1302
|
<span class="cstat-no" title="statement not covered" > terminal.writeErrorLine(`${message}: HTTP ${response.status}: ${response.statusText}`);</span>
|
|
1216
1303
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1217
1304
|
}
|
|
1218
1305
|
|
|
1219
1306
|
case FailureType.Warning: {
|
|
1220
|
-
|
|
1221
|
-
|
|
1307
|
+
terminal.writeWarningLine(`${message}: HTTP ${response.status}: ${response.statusText}`);
|
|
1308
|
+
break;
|
|
1222
1309
|
}
|
|
1223
1310
|
|
|
1224
|
-
case FailureType.Informational: {
|
|
1311
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > case FailureType.Informational: {</span>
|
|
1225
1312
|
<span class="cstat-no" title="statement not covered" > terminal.writeLine(`${message}: HTTP ${response.status}: ${response.statusText}`);</span>
|
|
1226
1313
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1227
1314
|
}
|
|
1228
1315
|
|
|
1229
|
-
case FailureType.None: {
|
|
1316
|
+
<span class="branch-3 cbranch-no" title="branch not covered" > case FailureType.None: {</span>
|
|
1230
1317
|
<span class="cstat-no" title="statement not covered" > terminal.writeDebugLine(`${message}: HTTP ${response.status}: ${response.statusText}`);</span>
|
|
1231
1318
|
<span class="cstat-no" title="statement not covered" > break;</span>
|
|
1232
1319
|
}
|
|
1233
1320
|
|
|
1234
|
-
case FailureType.Authentication: {
|
|
1321
|
+
<span class="branch-4 cbranch-no" title="branch not covered" > case FailureType.Authentication: {</span>
|
|
1235
1322
|
<span class="cstat-no" title="statement not covered" > throw new Error(</span>
|
|
1236
1323
|
[
|
|
1237
1324
|
`${this._url.href} responded with ${response.status}: ${response.statusText}.`,
|
|
@@ -1255,7 +1342,7 @@ export class HttpBuildCacheProvider implements ICloudBuildCacheProvider {
|
|
|
1255
1342
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1256
1343
|
Code coverage generated by
|
|
1257
1344
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1258
|
-
at 2023-
|
|
1345
|
+
at 2023-05-21T00:14:25.509Z
|
|
1259
1346
|
</div>
|
|
1260
1347
|
<script src="prettify.js"></script>
|
|
1261
1348
|
<script>
|