diff --git a/Jenkinsfile b/Jenkinsfile index bc1f1d4325c..f3102333023 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -79,9 +79,6 @@ pipeline { buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '', daysToKeepStr: '7', numToKeepStr: '10') disableConcurrentBuilds() } - triggers { - githubPush() - } parameters { booleanParam(name: 'ANDROID_BUILD', defaultValue: true, description: 'Build an Android version') booleanParam(name: 'ANDROID_BUILD_MAESTRO', defaultValue: true, description: 'Build an Android Maestro version') diff --git a/docs/JENKINS_TRIGGER_VALIDATION.md b/docs/JENKINS_TRIGGER_VALIDATION.md new file mode 100644 index 00000000000..6fc2209cb82 --- /dev/null +++ b/docs/JENKINS_TRIGGER_VALIDATION.md @@ -0,0 +1,161 @@ +# Jenkins trigger validation + +Date: September 3, 2026 + +PR: [#6166 — Remove duplicate Jenkins push trigger](https://github.com/EdgeApp/edge-react-gui/pull/6166) + +## Result + +The proposed change was validated directly in the live +`EdgeApp/edge-react-gui` multibranch job using the dedicated +`test-parm` and `test-colby` branches. + +| Controlled scenario | Before change | After change | +|---|---:|---:| +| Isolated Parm update | Extra Parm build in 4/5 trials | Extra Parm build in 0/5 trials | +| Colby updated while Parm remained active | Extra Parm build in 10/10 trials | Extra Parm build in 0/10 trials | +| Colby's own update in the overlap series | Extra Colby build in 5/10 trials | Extra Colby build in 0/10 trials | + +Across all 15 post-change trials: + +- all 15 Parm updates produced exactly one Parm build; +- all 10 Colby updates produced exactly one Colby build; +- all 25 expected builds completed successfully; +- no extra same-revision build occurred. + +The production PR removes only this three-line block: + +```groovy +triggers { + githubPush() +} +``` + +GitHub Branch Source remains responsible for normal branch-update delivery. + +## Test design + +The test used a frozen lightweight Jenkinsfile on the two dedicated branches. +Parm remained active for a fixed window before checkout. Colby performed a +short checkout and delay. The harness did not install dependencies, compile the +application, run application tests, sign, upload, or deploy anything. + +The baseline and post-change harness trees differed only by the same +`githubPush()` block and its adjacent blank line. That is four textual lines +in the harness, while the production PR itself deletes the three-line block. + +Two series were measured before and after the change: + +1. **Isolated update:** update Parm once and count all Parm builds for that + revision. +2. **Timed overlap:** update Parm, confirm its expected build is active, then + update Colby and count all builds for both controlled revisions. + +Every retained overlap was classified after completion using archived Branch +Source event time, queue-entry time, and build-completion time. + +## Primary evidence + +### Isolated Parm updates + +Before the change, four of five controlled Parm revisions produced two Parm +builds: + +- [#41](https://hq.edge.app/job/edge-react-gui/job/test-parm/41/) and + [#42](https://hq.edge.app/job/edge-react-gui/job/test-parm/42/) +- [#44](https://hq.edge.app/job/edge-react-gui/job/test-parm/44/) and + [#45](https://hq.edge.app/job/edge-react-gui/job/test-parm/45/) +- [#46](https://hq.edge.app/job/edge-react-gui/job/test-parm/46/) and + [#47](https://hq.edge.app/job/edge-react-gui/job/test-parm/47/) +- [#48](https://hq.edge.app/job/edge-react-gui/job/test-parm/48/) and + [#49](https://hq.edge.app/job/edge-react-gui/job/test-parm/49/) + +The fifth revision built once as +[#43](https://hq.edge.app/job/edge-react-gui/job/test-parm/43/). + +After the change, all five revisions built exactly once as Parm +[#61](https://hq.edge.app/job/edge-react-gui/job/test-parm/61/) through +[#65](https://hq.edge.app/job/edge-react-gui/job/test-parm/65/). + +### Timed Parm/Colby overlap + +All ten retained baseline overlaps produced two Parm builds for the same +revision: + +| Trial | Parm builds | Colby builds | +|---:|---|---| +| 1 | [#21](https://hq.edge.app/job/edge-react-gui/job/test-parm/21/), [#22](https://hq.edge.app/job/edge-react-gui/job/test-parm/22/) | [#8](https://hq.edge.app/job/edge-react-gui/job/test-colby/8/), [#9](https://hq.edge.app/job/edge-react-gui/job/test-colby/9/) | +| 5 | [#29](https://hq.edge.app/job/edge-react-gui/job/test-parm/29/), [#30](https://hq.edge.app/job/edge-react-gui/job/test-parm/30/) | [#16](https://hq.edge.app/job/edge-react-gui/job/test-colby/16/) | +| 6 | [#31](https://hq.edge.app/job/edge-react-gui/job/test-parm/31/), [#32](https://hq.edge.app/job/edge-react-gui/job/test-parm/32/) | [#17](https://hq.edge.app/job/edge-react-gui/job/test-colby/17/) | +| 7 | [#33](https://hq.edge.app/job/edge-react-gui/job/test-parm/33/), [#34](https://hq.edge.app/job/edge-react-gui/job/test-parm/34/) | [#18](https://hq.edge.app/job/edge-react-gui/job/test-colby/18/) | +| 8 | [#35](https://hq.edge.app/job/edge-react-gui/job/test-parm/35/), [#36](https://hq.edge.app/job/edge-react-gui/job/test-parm/36/) | [#19](https://hq.edge.app/job/edge-react-gui/job/test-colby/19/) | +| 9 | [#37](https://hq.edge.app/job/edge-react-gui/job/test-parm/37/), [#38](https://hq.edge.app/job/edge-react-gui/job/test-parm/38/) | [#20](https://hq.edge.app/job/edge-react-gui/job/test-colby/20/), [#21](https://hq.edge.app/job/edge-react-gui/job/test-colby/21/) | +| 10 | [#39](https://hq.edge.app/job/edge-react-gui/job/test-parm/39/), [#40](https://hq.edge.app/job/edge-react-gui/job/test-parm/40/) | [#22](https://hq.edge.app/job/edge-react-gui/job/test-colby/22/) | +| 12 | [#54](https://hq.edge.app/job/edge-react-gui/job/test-parm/54/), [#55](https://hq.edge.app/job/edge-react-gui/job/test-parm/55/) | [#28](https://hq.edge.app/job/edge-react-gui/job/test-colby/28/), [#29](https://hq.edge.app/job/edge-react-gui/job/test-colby/29/) | +| 13 | [#56](https://hq.edge.app/job/edge-react-gui/job/test-parm/56/), [#57](https://hq.edge.app/job/edge-react-gui/job/test-parm/57/) | [#30](https://hq.edge.app/job/edge-react-gui/job/test-colby/30/), [#31](https://hq.edge.app/job/edge-react-gui/job/test-colby/31/) | +| 14 | [#58](https://hq.edge.app/job/edge-react-gui/job/test-parm/58/), [#59](https://hq.edge.app/job/edge-react-gui/job/test-parm/59/) | [#32](https://hq.edge.app/job/edge-react-gui/job/test-colby/32/), [#33](https://hq.edge.app/job/edge-react-gui/job/test-colby/33/) | + +In the first retained trial, the Colby event arrived while Parm #21 was active. +Parm #22 entered the queue 7.814 seconds later, before #21 checked out or +completed. Both Parm builds used revision +`d11152b006ad85231e5efeaf988f80f02b473d4b`. The expected build recorded the +Branch Source cause; the extra build recorded only generic push causes. + +After the change, all ten overlap trials produced exactly one Parm build +([#66](https://hq.edge.app/job/edge-react-gui/job/test-parm/66/) through +[#75](https://hq.edge.app/job/edge-react-gui/job/test-parm/75/)) and one Colby +build ([#35](https://hq.edge.app/job/edge-react-gui/job/test-colby/35/) through +[#44](https://hq.edge.app/job/edge-react-gui/job/test-colby/44/)). + +In every post-change overlap, the Colby event arrived while Parm remained +active, with 23.494–27.957 seconds remaining. Each expected build recorded one +Branch Source event cause and no generic push cause. + +## Exclusions and replacements + +Baseline overlap attempts 2–4 produced extra Parm builds, but their queue +entries predated the controlled Colby event. They were reclassified as +isolated-update observations and excluded from the overlap denominator. + +Attempt 11 was excluded for the same reason. Replacement attempts 12–14 met +the ordering rule, producing the final declared cohort of ten exact overlaps. +The excluded attempts remain in the +[complete trial ledger](JENKINS_TRIGGER_VALIDATION_TRIALS.csv). + +## Secondary Colby observation + +In retained baseline overlap trials 1, 9, 12, 13, and 14, Colby's controlled +revision also built twice. In every pair, the expected build recorded Branch +Source and generic causes; the extra build recorded only the generic cause. +Each extra entered the queue while the expected Colby build remained active. + +All ten post-change Colby revisions built exactly once. This is corroborating +overlap evidence, not an isolated Colby-only test, because Parm was active at +the same time. + +## Consistency checks + +An independent read-only review of the retained post-change cohort confirmed: + +- all 15 post-change trials were valid; +- no measured window contained an unrelated branch event; +- archived event records were continuous with no rollover; +- child configurations stayed in the expected state throughout each phase; +- the Parm polling-log timestamp did not change in any post-change trial; +- Git revisions agreed across commit, event, update, and Jenkins build records; +- all expected post-change builds succeeded. + +The verified manifest covers 627 evidence files (14 MB), including trial +records, Jenkins build metadata, logs, configuration snapshots, and event +snapshots. The archive and its manifest are retained separately rather than +committed to the application repository. The manifest's SHA-256 is +`0dfb815226d3f076aa7b67064ddd247a7c9ba15b1b4cc4fc68c251ad9e0cd7ba`. + +## Scope + +These results directly cover the isolated-update and timed-overlap scheduling +paths exercised by this validation. They do not claim to eliminate every +possible source of repeated Jenkins requests. + +The validation-branch state after measurement does not affect the PR branch or +its merge. diff --git a/docs/JENKINS_TRIGGER_VALIDATION_TRIALS.csv b/docs/JENKINS_TRIGGER_VALIDATION_TRIALS.csv new file mode 100644 index 00000000000..d12a2262f89 --- /dev/null +++ b/docs/JENKINS_TRIGGER_VALIDATION_TRIALS.csv @@ -0,0 +1,35 @@ +phase,mode,trial,parm_sha,colby_sha,parm_build_numbers,parm_build_urls,colby_build_numbers,colby_build_urls,extra_parm_build,extra_colby_build,final_valid,classification,evidence_notes +before,single,1,c55a553011e84be3486d898f47adfe0fd46c79a3,,41;42,https://hq.edge.app/job/edge-react-gui/job/test-parm/41/;https://hq.edge.app/job/edge-react-gui/job/test-parm/42/,,,yes,not_applicable,yes,retained-single,"Two successful same-revision Parm builds; no controlled Colby update; zero unrelated events" +before,single,2,eed6df2eef5925f0123c4036d8cd48e2fa8e33d2,,43,https://hq.edge.app/job/edge-react-gui/job/test-parm/43/,,,no,not_applicable,yes,retained-single,"One successful Parm build; no controlled Colby update; zero unrelated events" +before,single,3,24087157698cc9ed1b2ff03e2f7be1ef3e0abf88,,44;45,https://hq.edge.app/job/edge-react-gui/job/test-parm/44/;https://hq.edge.app/job/edge-react-gui/job/test-parm/45/,,,yes,not_applicable,yes,retained-single,"Two successful same-revision Parm builds; no controlled Colby update; zero unrelated events" +before,single,4,375a6ffc040f3aeed292f2ac50a88aebe9f7bad3,,46;47,https://hq.edge.app/job/edge-react-gui/job/test-parm/46/;https://hq.edge.app/job/edge-react-gui/job/test-parm/47/,,,yes,not_applicable,yes,retained-single,"Two successful same-revision Parm builds; no controlled Colby update; zero unrelated events" +before,single,5,7a3227c78c741345da016c1226cbe92b0bed6d4c,,48;49,https://hq.edge.app/job/edge-react-gui/job/test-parm/48/;https://hq.edge.app/job/edge-react-gui/job/test-parm/49/,,,yes,not_applicable,yes,retained-single,"Two successful same-revision Parm builds; no controlled Colby update; zero unrelated events" +before,overlap,1,d11152b006ad85231e5efeaf988f80f02b473d4b,e1c53ed896d8e100cb242038c9bc7df93ecc13d3,21;22,https://hq.edge.app/job/edge-react-gui/job/test-parm/21/;https://hq.edge.app/job/edge-react-gui/job/test-parm/22/,8;9,https://hq.edge.app/job/edge-react-gui/job/test-colby/8/;https://hq.edge.app/job/edge-react-gui/job/test-colby/9/,yes,yes,yes,retained-exact-overlap,"Extra Parm queued 7.814 s after Colby event while expected Parm build remained active" +before,overlap,2,dcfcf12a4efb7d5922c24b673f1f0e96f81db5af,44bebea5e3d41c5178de4f1d33ad46db36473f55,23;24,https://hq.edge.app/job/edge-react-gui/job/test-parm/23/;https://hq.edge.app/job/edge-react-gui/job/test-parm/24/,10;11,https://hq.edge.app/job/edge-react-gui/job/test-colby/10/;https://hq.edge.app/job/edge-react-gui/job/test-colby/11/,yes,yes,no,excluded-from-overlap,"Extra Parm queued 20.972 s before Colby push; post-completion timestamp audit supersedes raw runner valid=true" +before,overlap,3,966402a14d5f14d44245fd6fc77ddc2d341765c9,f37143c207b351ae082a200ff081e4d9e4513d74,25;26,https://hq.edge.app/job/edge-react-gui/job/test-parm/25/;https://hq.edge.app/job/edge-react-gui/job/test-parm/26/,12;13,https://hq.edge.app/job/edge-react-gui/job/test-colby/12/;https://hq.edge.app/job/edge-react-gui/job/test-colby/13/,yes,yes,no,excluded-from-overlap,"Extra Parm queued 25.879 s before Colby push; post-completion timestamp audit supersedes raw runner valid=true" +before,overlap,4,11a6c48909dfec25d9bdd1275fbdd4530431764f,ae8d175581a05e7665ae47726ac3eb0f039f997e,27;28,https://hq.edge.app/job/edge-react-gui/job/test-parm/27/;https://hq.edge.app/job/edge-react-gui/job/test-parm/28/,14;15,https://hq.edge.app/job/edge-react-gui/job/test-colby/14/;https://hq.edge.app/job/edge-react-gui/job/test-colby/15/,yes,yes,no,excluded-from-overlap,"Extra Parm queued 21.187 s before Colby push; post-completion timestamp audit supersedes raw runner valid=true" +before,overlap,5,adfa4c5b8d6cdc69753b280eedca9b4428f5025b,58d36c893e11ab0059b66c0d9f9cdc19167a12d8,29;30,https://hq.edge.app/job/edge-react-gui/job/test-parm/29/;https://hq.edge.app/job/edge-react-gui/job/test-parm/30/,16,https://hq.edge.app/job/edge-react-gui/job/test-colby/16/,yes,no,yes,retained-exact-overlap,"Extra Parm queued 9.536 s after Colby event while expected Parm build remained active" +before,overlap,6,caeb4fece88bccedd14020b1114bcf3fa013bc5c,76f1205df6cab1263acaafb16b2136b55bf3301a,31;32,https://hq.edge.app/job/edge-react-gui/job/test-parm/31/;https://hq.edge.app/job/edge-react-gui/job/test-parm/32/,17,https://hq.edge.app/job/edge-react-gui/job/test-colby/17/,yes,no,yes,retained-exact-overlap,"Extra Parm queued 12.045 s after Colby event while expected Parm build remained active" +before,overlap,7,d434e6c9ad9bb46b6c534cbd6638d7e9497fffef,0f085684ecb493a9f2469593e7e8f59f31525fd3,33;34,https://hq.edge.app/job/edge-react-gui/job/test-parm/33/;https://hq.edge.app/job/edge-react-gui/job/test-parm/34/,18,https://hq.edge.app/job/edge-react-gui/job/test-colby/18/,yes,no,yes,retained-exact-overlap,"Extra Parm queued 13.783 s after Colby event while expected Parm build remained active" +before,overlap,8,7756361f68251422fcfdcc3ef369daf9a35aa625,d439f7c3456e6dada6de40c095dcf88e89ef133d,35;36,https://hq.edge.app/job/edge-react-gui/job/test-parm/35/;https://hq.edge.app/job/edge-react-gui/job/test-parm/36/,19,https://hq.edge.app/job/edge-react-gui/job/test-colby/19/,yes,no,yes,retained-exact-overlap,"Extra Parm queued 9.099 s after Colby event while expected Parm build remained active" +before,overlap,9,2981ba100368ad0ed70aae5687ae60535b0ae58a,22594ec7c963482f2253bf81f44b3e560a824d2e,37;38,https://hq.edge.app/job/edge-react-gui/job/test-parm/37/;https://hq.edge.app/job/edge-react-gui/job/test-parm/38/,20;21,https://hq.edge.app/job/edge-react-gui/job/test-colby/20/;https://hq.edge.app/job/edge-react-gui/job/test-colby/21/,yes,yes,yes,retained-exact-overlap,"Extra Parm queued 12.474 s after Colby event while expected Parm build remained active" +before,overlap,10,a018b45ca281ffaffd09d2a4ffa85b61f176876c,cf11fa48508ef655e33e2242c42d06805b850abd,39;40,https://hq.edge.app/job/edge-react-gui/job/test-parm/39/;https://hq.edge.app/job/edge-react-gui/job/test-parm/40/,22,https://hq.edge.app/job/edge-react-gui/job/test-colby/22/,yes,no,yes,retained-exact-overlap,"Extra Parm queued 15.384 s after Colby event while expected Parm build remained active" +before,overlap,11,7fdd59602e9c66374c278c790146228d31b9d64e,9ef41a1ddc98a88e8d362037dfebe37bf9ab37d0,52;53,https://hq.edge.app/job/edge-react-gui/job/test-parm/52/;https://hq.edge.app/job/edge-react-gui/job/test-parm/53/,26;27,https://hq.edge.app/job/edge-react-gui/job/test-colby/26/;https://hq.edge.app/job/edge-react-gui/job/test-colby/27/,yes,yes,no,excluded-from-overlap,"Extra Parm queued 33.427 s before Colby event; cumulative event log rolled; runner classified invalid" +before,overlap,12,7845b2ec2ac47d95d7da2454d81376bb446058b7,cfbe5989fb7ea86a4f375dedcd879539b17efc92,54;55,https://hq.edge.app/job/edge-react-gui/job/test-parm/54/;https://hq.edge.app/job/edge-react-gui/job/test-parm/55/,28;29,https://hq.edge.app/job/edge-react-gui/job/test-colby/28/;https://hq.edge.app/job/edge-react-gui/job/test-colby/29/,yes,yes,yes,retained-exact-overlap,"Extra Parm queued 4.296 s after Colby event while expected Parm build remained active" +before,overlap,13,1532fc506245721fb4340176587d24f4ec1c5754,22101a3432b8b6a42d861608953d773916f78b0c,56;57,https://hq.edge.app/job/edge-react-gui/job/test-parm/56/;https://hq.edge.app/job/edge-react-gui/job/test-parm/57/,30;31,https://hq.edge.app/job/edge-react-gui/job/test-colby/30/;https://hq.edge.app/job/edge-react-gui/job/test-colby/31/,yes,yes,yes,retained-exact-overlap,"Extra Parm queued 4.844 s after Colby event while expected Parm build remained active" +before,overlap,14,fc94b4de3981ac83d2c79ba7356416cc5c159a34,8f87c8552e06a1f7b654c4ccfecf9a7988e33849,58;59,https://hq.edge.app/job/edge-react-gui/job/test-parm/58/;https://hq.edge.app/job/edge-react-gui/job/test-parm/59/,32;33,https://hq.edge.app/job/edge-react-gui/job/test-colby/32/;https://hq.edge.app/job/edge-react-gui/job/test-colby/33/,yes,yes,yes,retained-exact-overlap,"Extra Parm queued 6.449 s after Colby event while expected Parm build remained active" +after,single,1,909bd7a5070d643b1160883dd174753b04093e6a,,61,https://hq.edge.app/job/edge-react-gui/job/test-parm/61/,,,no,not_applicable,yes,retained-single,"Exactly one successful Parm build; zero unrelated events" +after,single,2,8248cebe33ce9c3d6ffb621e37ba103d98d506d9,,62,https://hq.edge.app/job/edge-react-gui/job/test-parm/62/,,,no,not_applicable,yes,retained-single,"Exactly one successful Parm build; zero unrelated events" +after,single,3,d9b2eec2ea754e1617ce4007ed04eff2edad05aa,,63,https://hq.edge.app/job/edge-react-gui/job/test-parm/63/,,,no,not_applicable,yes,retained-single,"Exactly one successful Parm build; zero unrelated events" +after,single,4,01f02864f6182ac0e2e9872924a7c2c5e27db01a,,64,https://hq.edge.app/job/edge-react-gui/job/test-parm/64/,,,no,not_applicable,yes,retained-single,"Exactly one successful Parm build; zero unrelated events" +after,single,5,9af849eda93b0fe5179ceefe95bf1a2b9ee6d242,,65,https://hq.edge.app/job/edge-react-gui/job/test-parm/65/,,,no,not_applicable,yes,retained-single,"Exactly one successful Parm build; zero unrelated events" +after,overlap,1,b52a39cb5eded5a02e1e0ab24dcd348d66ecd8c8,c578c172c0fd791fdaff5c07184f56a4d85c7cb5,66,https://hq.edge.app/job/edge-react-gui/job/test-parm/66/,35,https://hq.edge.app/job/edge-react-gui/job/test-colby/35/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,2,527013d6d1eb6237dcb7e3356e0a1a19087e5db8,4aa893f3916ec437e8b3911ebf85185b81fd9aea,67,https://hq.edge.app/job/edge-react-gui/job/test-parm/67/,36,https://hq.edge.app/job/edge-react-gui/job/test-colby/36/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,3,0f6d3abeb5d244dbf414cfffe1783c2860e263b6,a7fa42d5a8e859d1c40aabff5069efad99d8fc07,68,https://hq.edge.app/job/edge-react-gui/job/test-parm/68/,37,https://hq.edge.app/job/edge-react-gui/job/test-colby/37/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,4,baf4ac93af89757cda2fad5c750755b6a7b7d401,e0c5404fc610617ce5e24bdce27f3b7df01d0a08,69,https://hq.edge.app/job/edge-react-gui/job/test-parm/69/,38,https://hq.edge.app/job/edge-react-gui/job/test-colby/38/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,5,cde7f4cbf8a4cb166e4dec186776418a08d3e1c0,b2b8f5ccc5b0a9529bac4fb47c6366072ae74a6d,70,https://hq.edge.app/job/edge-react-gui/job/test-parm/70/,39,https://hq.edge.app/job/edge-react-gui/job/test-colby/39/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,6,3892c8ab3d8744dbbc6e5505d8abc3190686a9ad,f4c9907de28dcd2a0b3ae3b2de45036f8e9b1afd,71,https://hq.edge.app/job/edge-react-gui/job/test-parm/71/,40,https://hq.edge.app/job/edge-react-gui/job/test-colby/40/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,7,675e924bc57e5a4392865c035d8339e74072bf71,58f0dc074001c9776ac31a8db0b5246bc03e7017,72,https://hq.edge.app/job/edge-react-gui/job/test-parm/72/,41,https://hq.edge.app/job/edge-react-gui/job/test-colby/41/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,8,e6728dd851c92a145fd20ce3b9c84a71b4e30895,dab3d1fca2d48b61a21408b42c1634f5744313ff,73,https://hq.edge.app/job/edge-react-gui/job/test-parm/73/,42,https://hq.edge.app/job/edge-react-gui/job/test-colby/42/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,9,4ba8c358ae1a73f742b2f11ce9e46b6c81bc893c,df68de8b5fc7a43ab0160b8b96f9e26bfe44f8e1,74,https://hq.edge.app/job/edge-react-gui/job/test-parm/74/,43,https://hq.edge.app/job/edge-react-gui/job/test-colby/43/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events" +after,overlap,10,36c2d8f34729d3573f3fffe65b212d7287a2ef54,91d8058244964c03741dc8b8110d126c60b89d89,75,https://hq.edge.app/job/edge-react-gui/job/test-parm/75/,44,https://hq.edge.app/job/edge-react-gui/job/test-colby/44/,no,no,yes,retained-exact-overlap,"Exactly one successful build per branch; Parm active at Colby event; zero unrelated events"