Skip to content

feat(themes): enable all palettes #17797

feat(themes): enable all palettes

feat(themes): enable all palettes #17797

Triggered via pull request December 16, 2025 01:57
Status Success
Total duration 12m 10s
Artifacts 27

build.yml

on: pull_request
build-react
51s
build-react
build-vue
39s
build-vue
Matrix: test-core-screenshot
build-angular
1m 12s
build-angular
build-angular-server
44s
build-angular-server
test-core-clean-build
11s
test-core-clean-build
test-core-lint
53s
test-core-lint
test-core-spec
49s
test-core-spec
build-react-router
31s
build-react-router
build-vue-router
44s
build-vue-router
verify-screenshots
3s
verify-screenshots
Matrix: test-angular-e2e
Matrix: test-react-e2e
Matrix: test-react-router-e2e
Matrix: test-vue-e2e
verify-test-angular-e2e
2s
verify-test-angular-e2e
verify-test-react-e2e
2s
verify-test-react-e2e
verify-test-react-router-e2e
2s
verify-test-react-router-e2e
verify-test-vue-e2e
3s
verify-test-vue-e2e
Fit to window
Zoom out
Zoom in

Annotations

8 errors and 20 notices
[Mobile Chrome] › src/components/segment/test/segment-events.e2e.ts:10:11 › segment: events: ionChange - ios/ltr › when the segment is activated by keyboard navigation › should emit when there is no initial value: src/components/segment/test/segment-events.e2e.ts#L37
1) [Mobile Chrome] › src/components/segment/test/segment-events.e2e.ts:10:11 › segment: events: ionChange - ios/ltr › when the segment is activated by keyboard navigation › should emit when there is no initial value Error: expect(received).toBe(expected) // Object.is equality Expected: "2" Received: undefined 35 | await page.keyboard.press('Enter'); 36 | > 37 | expect(await segment.evaluate((el: HTMLIonSegmentElement) => el.value)).toBe('2'); | ^ 38 | 39 | expect(ionChangeSpy).toHaveReceivedEventTimes(1); 40 | expect(ionChangeSpy).toHaveReceivedEventDetail({ value: '2' }); at /ionic/src/components/segment/test/segment-events.e2e.ts:37:81
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group: src/components/radio/test/a11y/radio.e2e.ts#L134
2) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 132 | 133 | await pageUtils.pressKeys('Tab'); > 134 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 135 | 136 | await page.keyboard.press('ArrowDown'); 137 | await expect(firstGroupRadios.nth(1)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:134:47
[Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups: src/components/radio/test/a11y/radio.e2e.ts#L122
1) [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups Error: expect(locator).toBeFocused() failed Locator: locator('#first-group ion-radio').first() Expected: focused Received: inactive Timeout: 5000ms Call log: - Expect "toBeFocused" with timeout 5000ms - waiting for locator('#first-group ion-radio').first() 9 × locator resolved to <ion-radio value="huey" role="radio" tabindex="0" aria-checked="true" class="md in-item radio-checked radio-label-placement-start hydrated">Huey</ion-radio> - unexpected value "inactive" 120 | 121 | await pageUtils.pressKeys('Tab'); > 122 | await expect(firstGroupRadios.nth(0)).toBeFocused(); | ^ 123 | 124 | await pageUtils.pressKeys('Tab'); 125 | await expect(secondGroupRadios.nth(0)).toBeFocused(); at /ionic/src/components/radio/test/a11y/radio.e2e.ts:122:47
[Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load: src/components/router/test/guards/router.e2e.ts#L9
1) [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load Error: expect(received).toContain(expected) // indexOf Expected substring: "#/child/1" Received string: "http://localhost:3333/src/components/router/test/guards#/guard-initial-page?ionic:_testing=true&ionic:mode=ios&ionic:theme=ios&rtl=undefined&palette=light" 7 | await page.goto(`/src/components/router/test/guards#/guard-initial-page`, config); 8 | > 9 | expect(page.url()).toContain('#/child/1'); | ^ 10 | }); 11 | }); 12 | }); at /ionic/src/components/router/test/guards/router.e2e.ts:9:26
[Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:58:9 › toast: swipe gesture with bottom position - ios/ltr › should swipe down to dismiss with anchor: src/components/toast/test/swipe-gesture/toast.e2e.ts#L0
2) [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:58:9 › toast: swipe gesture with bottom position - ios/ltr › should swipe down to dismiss with anchor Test timeout of 30000ms exceeded.
[Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions: src/components/tab-bar/test/basic/tab-bar.e2e.ts#L45
1) [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('ion-tab-bar') 541 pixels (ratio 0.03 of all image pixels) are different. Snapshot: tab-bar-default-ionic-md-rtl-light.png Call log: - Expect "toHaveScreenshot(tab-bar-default-ionic-md-rtl-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 541 pixels (ratio 0.03 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('ion-tab-bar') - locator resolved to <ion-tab-bar role="tablist" selected-tab="2" class="ionic tab-bar-full tab-bar-round hydrated">…</ion-tab-bar> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 541 pixels (ratio 0.03 of all image pixels) are different. 43 | const tabBar = page.locator('ion-tab-bar'); 44 | > 45 | await expect(tabBar).toHaveScreenshot(screenshot(`tab-bar-default`)); | ^ 46 | }); 47 | }); 48 | }); at /ionic/src/components/tab-bar/test/basic/tab-bar.e2e.ts:45:28
[Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with large spacing: src/components/divider/test/spacing/divider.e2e.ts#L21
1) [Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with large spacing Error: expect(locator).toHaveScreenshot(expected) failed Locator: locator('#container') 91 pixels (ratio 0.01 of all image pixels) are different. Snapshot: divider-spacing-large-ionic-md-ltr-light.png Call log: - Expect "toHaveScreenshot(divider-spacing-large-ionic-md-ltr-light.png)" with timeout 5000ms - verifying given screenshot expectation - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - 91 pixels (ratio 0.01 of all image pixels) are different. - waiting 100ms before taking screenshot - waiting for locator('#container') - locator resolved to <div id="container">…</div> - taking element screenshot - disabled all CSS animations - waiting for fonts to load... - fonts loaded - attempting scroll into view action - waiting for element to be stable - captured a stable screenshot - 91 pixels (ratio 0.01 of all image pixels) are different. 19 | const container = page.locator('#container'); 20 | > 21 | await expect(container).toHaveScreenshot(screenshot(`divider-spacing-${spacing}`)); | ^ 22 | }); 23 | }); 24 | }); at /ionic/src/components/divider/test/spacing/divider.e2e.ts:21:33
🎭 Playwright Run Summary
360 skipped 272 passed (2.2m)
🎭 Playwright Run Summary
368 skipped 307 passed (3.3m)
🎭 Playwright Run Summary
2 skipped 667 passed (3.6m)
🎭 Playwright Run Summary
8 skipped 688 passed (3.9m)
🎭 Playwright Run Summary
1 flaky [Mobile Chrome] › src/components/segment/test/segment-events.e2e.ts:10:11 › segment: events: ionChange - ios/ltr › when the segment is activated by keyboard navigation › should emit when there is no initial value 1 skipped 675 passed (3.9m)
🎭 Playwright Run Summary
8 skipped 663 passed (4.3m)
🎭 Playwright Run Summary
152 skipped 707 passed (4.5m)
🎭 Playwright Run Summary
2 flaky [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:117:11 › radio: a11y - md/ltr › radio: keyboard navigation - md/ltr › tabbing should switch between radio groups [Mobile Chrome] › src/components/radio/test/a11y/radio.e2e.ts:130:11 › radio: a11y - md/ltr/dark › radio: keyboard navigation - md/ltr/dark › using arrow keys should move between enabled radios within group 4 skipped 677 passed (5.1m)
🎭 Playwright Run Summary
14 skipped 491 passed (6.1m)
🎭 Playwright Run Summary
18 skipped 640 passed (6.6m)
🎭 Playwright Run Summary
5 skipped 681 passed (7.1m)
🎭 Playwright Run Summary
3 skipped 664 passed (8.2m)
🎭 Playwright Run Summary
13 skipped 659 passed (8.5m)
🎭 Playwright Run Summary
1 flaky [Mobile Safari] › src/components/router/test/guards/router.e2e.ts:6:9 › router: guards - ios/ltr › guards should be run on initial load 12 skipped 684 passed (8.5m)
🎭 Playwright Run Summary
5 skipped 668 passed (8.7m)
🎭 Playwright Run Summary
2 flaky [Mobile Firefox] › src/components/tab-bar/test/basic/tab-bar.e2e.ts:9:9 › tab-bar: basic - ionic/md/rtl/light › should not have visual regressions [Mobile Firefox] › src/components/toast/test/swipe-gesture/toast.e2e.ts:58:9 › toast: swipe gesture with bottom position - ios/ltr › should swipe down to dismiss with anchor 13 skipped 710 passed (8.5m)
🎭 Playwright Run Summary
1 skipped 656 passed (8.8m)
🎭 Playwright Run Summary
1 flaky [Mobile Firefox] › src/components/divider/test/spacing/divider.e2e.ts:7:11 › divider: spacing - ionic/md/ltr/light › should render divider with large spacing 18 skipped 616 passed (8.9m)
🎭 Playwright Run Summary
14 skipped 682 passed (9.2m)
🎭 Playwright Run Summary
4 skipped 738 passed (9.4m)

Artifacts

Produced during runtime
Name Size Digest
ionic-angular
776 KB
sha256:e05dbab8a6df0723a10f13ebb5936dbae86d4654267e7b58a5722bcecfdeccfc
ionic-angular-server
8.55 KB
sha256:77d60d5457a95488ab6a01991abc0ae694aea8e6e48ab726ea270377182de174
ionic-core
5.2 MB
sha256:f4975f85b6963fe4031834ffa00995932dbf4b2ed276bc15939dc80834504455
ionic-react
314 KB
sha256:5d95e349f3601295e677383738f19afd73a3efb3b7df1e9a0b1347e902bcd99f
ionic-react-router
27.9 KB
sha256:d00fc81b6274094506496666b696ed1df5721642bcc28d3a59cc78f736924a71
ionic-vue
344 KB
sha256:606e73dc858561623bd2cb5fd72ad058deded9f0a521924c077724d5babe4cae
ionic-vue-router
17 KB
sha256:835aeec41302625cc97038be3c162dac15f56cceb1aac4c2d338b8ceb306abf2
test-results-1-20
515 KB
sha256:a2062f61326ae278d6ae156b09a3a145a487bff2f2d8e7a544499570da19a0cc
test-results-10-20
460 KB
sha256:e10c7de4951c5a70e4aa4b9d6bf5fbde597c6e780c72126e0b6e26b8a220bca5
test-results-11-20
2.09 MB
sha256:433e80556ed2771d78b7450ba798aed37fdbd704712b8992840a2e9994682d0f
test-results-12-20
1.25 MB
sha256:f809a7977d29d47ca71b22c5b8dd9e3da30d3d42c70acd42e28cb70bfa184f8d
test-results-13-20
471 KB
sha256:9368be8895522b9c2b3e6e13c00777dd6ef60757d0aa8cbdf8899145e2a47cf5
test-results-14-20
443 KB
sha256:debbc30843e035847204a20b443a4b1f6b62b1ef4289924f883c619873d11086
test-results-15-20
478 KB
sha256:687ef274281b56a29a69cd304c4bf7f544d2405fe8ca95a7bfb9b539255bbbb3
test-results-16-20
493 KB
sha256:00261bf9a4e7218dd58427cc9b34464b5692354a46a8e4a16d90776224e1f0bf
test-results-17-20
577 KB
sha256:f1e4b7784f31fbd76abe26db2c37a24f0a245d110b7c0a7b4f4c42b05b51288a
test-results-18-20
1.31 MB
sha256:bd6107198593ac402babb2f023702312472d168d8809a8a50960f7e68299eb1e
test-results-19-20
459 KB
sha256:8dc334d16b21e7c6f90bbc1071464ba46d055a89f08dfedfd4258ad5d84b950a
test-results-2-20
1.28 MB
sha256:b67d4b19af6db5ae9d57cb2c94fe1191d92b256135253325b027792ffe4f0913
test-results-20-20
355 KB
sha256:04e84f4972e21d4dfb857bba01e7c814a9ce1df7db9534434ce6b0ae692c9842
test-results-3-20
456 KB
sha256:b202df680f6dbc648fd25dcb59a252d5552e57545d33c9487d6026d3d452efc3
test-results-4-20
600 KB
sha256:9803d537af8fa7bf611819c2a0aa3d1f3f4c2e3d236fd0712631c315c4d2d779
test-results-5-20
506 KB
sha256:cbf4569e63d5555e9e2e732d41ce6bbd99d73d6410eab28092647913c11f6e90
test-results-6-20
1.83 MB
sha256:860f9bfaf23762f18c7d393f64e3539e557ba20b8a476ba7630c85ae57742ec4
test-results-7-20
371 KB
sha256:55f19bc7a1bc0855b96d4a0429541d7aaae7c080e1a62d1c09dc04310622f429
test-results-8-20
470 KB
sha256:9d91dd8117f07c7965c428ff1b2a6642130870a8f9a7191d513275293697ffb3
test-results-9-20
503 KB
sha256:c24c1df150a379a63e5a8e806d16dc40dc330d96a55ab0ac56e4a3a9bc594b53