Skip to content

Conversation

@catastrophe-brandon
Copy link
Contributor

No description provided.

@catastrophe-brandon catastrophe-brandon changed the title E2E Test Setup RHCLOUD-41924: E2E Test Setup Aug 26, 2025
@catastrophe-brandon
Copy link
Contributor Author

/retest

1 similar comment
@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon catastrophe-brandon changed the title RHCLOUD-41924: E2E Test Setup RHCLOUD-41924, RHCLOUD-43224: E2E Test Setup Nov 4, 2025
@catastrophe-brandon
Copy link
Contributor Author

/retest

1 similar comment
@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

8 similar comments
@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest

@catastrophe-brandon
Copy link
Contributor Author

/retest with new playwright image for amd64

@catastrophe-brandon
Copy link
Contributor Author

/retest one last time

@red-hat-konflux
Copy link
Contributor

Caution

There are some errors in your PipelineRun template.

PipelineRun Error
learning-resources-pull-request.yaml yaml validation error: line 63: did not find expected key

catastrophe-brandon and others added 16 commits November 11, 2025 20:58
Replaced `npm install @playwright/test` with `npm ci --legacy-peer-deps` to:
- Install all dependencies in the e2e test environment
- Avoid "Tracker 'idealTree' already exists" error by using clean install
- Ensure deterministic dependency installation from package-lock.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Switch from npm ci to npm install because package-lock.json is not
included in the source artifact. Clean npm cache first to prevent
"Tracker 'idealTree' already exists" error.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Clean up node_modules and package-lock.json before installing to ensure
a fresh dependency tree. This prevents the "Tracker 'idealTree' already
exists" error by removing any existing npm state.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Remove /root/.npm entirely and use a unique cache directory per run
to completely eliminate any npm state that could cause the "Tracker
'idealTree' already exists" error.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The Playwright container has Playwright pre-installed, causing the
"idealTree" conflict. Using --force bypasses this conflict and allows
npm to proceed with installation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Match the working tekton-playwright pipeline by using plain npm install
with no extra flags. The --force and other flags were causing conflicts
with the pre-installed Playwright in the container.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Switch from using the trusted artifact to cloning the repository directly
for e2e tests. This matches the working tekton-playwright pipeline and
ensures we have package-lock.json and a clean npm state.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The corporate proxy interferes with git clone and npm install.
Unset proxy variables before cloning and installing dependencies.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Save proxy values, unset for git clone and npm install, then restore
before running Playwright tests which may need the proxy.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
- Add networkidle wait to page.goto for better initial load
- Add explicit waitFor on username and password fields
- Increase timeout to 60s for initial page load
- Add 30s timeout for login form elements to appear

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Log page URL, title, HTML content, and element counts to help diagnose
why the login form isn't appearing in the pipeline environment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Testing updated Caddy configuration that uses HTTP proxy for upstream
connections to fix 502 errors when reaching external APIs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Fixed Caddy configuration to use 'proxy' instead of 'proxy_url'.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Caddy v2.7+ automatically uses HTTP_PROXY environment variable without
any transport configuration needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@catastrophe-brandon
Copy link
Contributor Author

/retest

catastrophe-brandon and others added 4 commits November 12, 2025 12:13
This fixes 502 errors for API and config endpoints (like /api/chrome-service/*
and /config/chrome/*) by adding a catch-all handler that proxies unmatched
requests to the staging environment via the configured HCC_ENV_URL.

The catch-all uses Caddy's automatic HTTP_PROXY support to route requests
through Squid to console.stage.redhat.com.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Changed from $HCC_ENV_URL to {env.HCC_ENV_URL} so Caddy evaluates the
environment variable at runtime instead of relying on shell expansion.

The proxy-routes-json content is inserted as literal text from a file,
so shell variables aren't expanded. Using Caddy's {env.VAR} syntax
ensures the environment variable is properly resolved.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The pipeline already provides a catch-all handler that proxies to
$HCC_ENV_URL. Having a duplicate catch-all in proxy-routes-json is
redundant and the second one would never be reached.

Rely on the pipeline's built-in catch-all handler instead.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Added verbose curl test to verify proxy connectivity to the staging
environment before running Playwright tests. This will help diagnose
whether requests are properly routing through the Squid proxy.

Requires HCC_ENV_URL to be added to the e2e-tests step environment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@catastrophe-brandon
Copy link
Contributor Author

/retest

catastrophe-brandon and others added 4 commits November 12, 2025 13:11
Re-running pipeline after adding HCC_ENV_URL to e2e-tests environment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Re-running pipeline to test proxy debug logging with HCC_ENV_URL.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Added curl test without proxy to determine if direct connectivity to
the staging environment exists. This will help determine whether the
Squid proxy is actually required or if network policies allow direct
access.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
The enhanced test now:
- Follows redirects and captures the final URL
- Verifies redirect to sso.stage.redhat.com
- Checks for input elements on the page
- Shows sample input elements found

This will help determine if direct connectivity provides the expected
SSO login page.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant