fix(ci): fix broken playwright and flaky operator build#27490
Merged
Conversation
harshach
previously approved these changes
Apr 17, 2026
Contributor
Contributor
🟡 Playwright Results — all passed (18 flaky)✅ 3669 passed · ❌ 0 failed · 🟡 18 flaky · ⏭️ 89 skipped
🟡 18 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
ShaileshParmar11
previously approved these changes
Apr 18, 2026
ce845d6 to
6badaf2
Compare
|
6badaf2 to
012e6bf
Compare
The IBM apt repository method was causing CI build failures with "Unable to locate package ibm-iaccess" despite apt update succeeding. The original approach had multiple issues: missing -y flag for non-interactive mode, using apt instead of apt-get in scripts, and unreliable repository package resolution. Switch to downloading the .deb package directly from IBM's server and use dpkg --force-depends to bypass dependency name mismatches. The package declares old Debian package names (libodbc1, odbcinst1debian2) that don't exist in Debian 12, but the actual dependencies (unixodbc, odbcinst) are already installed earlier in the Dockerfile. This is more reliable because: - Eliminates repository caching and resolution issues - Provides predictable versioning (1.1.0.13) - Reduces build steps and potential failure points - Uses dpkg --force-depends safely since the actual libraries are present under different package names - apt-get install -f ensures any actual missing dependencies are resolved 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
012e6bf to
c4ab74e
Compare
Code Review ✅ ApprovedPlaywright and operator build configurations updated to resolve intermittent failures and CI instability. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
|
harsh-vador
approved these changes
Apr 20, 2026
mohittilala
approved these changes
Apr 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Overview
This PR fixes two critical CI issues that have been blocking multiple PRs from merging:
These issues were blocking PRs including #26495 and #27359.
1. Playwright: Handle Multiple Domains in assignDataProduct Util
Problem
The DataAssetRulesDisabled.spec.ts tests were flaky and failing when entities had multiple domains assigned. The tests assign two domains (domain and domain2) to each entity, but the UI only shows one domain-link with a "+1" button when multiple domains exist. Which domain is displayed is non-deterministic due to backend ordering.
The
assignDataProductfunction was expecting a specific domain to always be visible in the single domain-link. When the wrong domain was shown, the assertion failed with:Solution
Updated the
assignDataProductfunction inplaywright/utils/common.tsto handle multiple domains:Changes:
domain-count-buttonis visible (indicates multiple domains)assignDomainfunction behaviorFixes 8 failing test cases:
2. CI: Use Direct Download for IBM iAccess ODBC Driver
Problem
The ingestion operator Docker build was consistently failing with dependency resolution errors, preventing any PRs that trigger the operator build from passing CI checks.
Initial error - Repository approach failed:
After switching to direct download - Dependency name mismatch:
Root cause: The IBM iAccess package declares dependencies using old Debian package names (
libodbc1,odbcinst1debian2) that no longer exist in Debian 12 (bookworm). However, the actual dependencies are already satisfied byunixodbcandodbcinstpackages installed earlier in the Dockerfile.Solution
Download the
.debpackage directly and usedpkg --force-dependsto bypass the dependency name mismatch:Why this is safe:
unixodbc=2.3.11-2+deb12u1andodbcinst=2.3.11-2+deb12u1earlier in the Dockerfiledpkg --force-dependsonly bypasses the package name check, not the actual library requirementsapt-get install -fruns after to fix any actual missing dependencies (there won't be any)Benefits:
Summary of Changes
Modified Files
openmetadata-ui/src/main/resources/ui/playwright/utils/common.ts- Fix assignDataProduct for multiple domainsingestion/operators/docker/Dockerfile- Direct download IBM iAccess driver with dpkg --force-dependsingestion/operators/docker/Dockerfile.ci- Direct download IBM iAccess driver with dpkg --force-depends (CI build)Testing
🤖 Generated with Claude Code