Skip to content

feat(ci): run production test in CI for any branch#5395

Merged
zoobestik merged 8 commits intomasterfrom
playground/e2e-local
Feb 26, 2026
Merged

feat(ci): run production test in CI for any branch#5395
zoobestik merged 8 commits intomasterfrom
playground/e2e-local

Conversation

@zoobestik
Copy link
Collaborator

Details

This is step 2 for #5333. In this PR, changes run "production" tests on CI without deploying it to production:

See screenshots:

for nextjs localhost Screenshot 2026-02-24 at 19 05 26
for any branch on CI Screenshot 2026-02-24 at 19 32 51
Keep working fo Production Screenshot 2026-02-24 at 19 34 40

Changes

  1. Refactoring old TeamCity build which has been worked on last in 2022.
  2. Drop old scripts for e2e runner; docker-compose-e2e-statics.yml is enough.
  3. Fix production tests which use inline host and skip tests that work only for production environment.

await expect(getStartedButton).toBeVisible();
await getStartedButton.click();
await expect(page.url()).toContain('/docs/getting-started.html');
expect(page.url()).toContain(`${baseURL}/docs/getting-started.html`);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to use baseURL in the checks?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Be honest, no. But to me it looks safer with this prefix.

I mean, AFAIK, .toContain works exactly like .includes. With baseURL it guarantees that you don't use certain domains in a URL like https://staging.kotlinlang.org/docs/getting-started.html or any other wrong domain (misspelled) one will fail, while .toContain('/docs/getting-started.html') passes as success.

- Remove unused Dockerfiles for E2E, nginx, and Playwright environments.
- Simplify `docker-compose-e2e-statics.yml` configuration.
- Refactor TeamCity configuration to use shared `E2ERunner`.
- Standardize E2E test command and dependencies in `package.json`.
- Remove deprecated scripts for E2E tests (`run.sh`, `run-e2e.sh`, `stop.sh`, `up.sh`, `wait-for-endpoint.sh`).
- Update TeamCity `E2ETests.kt` to reference simplified script path (`run-e2e-tests.sh`).
- Replace `stepE2ETest` with inline script steps in `E2EProductionTest.kt` and `E2ETests.kt`.
- Remove deprecated `stepE2ETest` method and associated constants from `E2ERunner.kt`.
- Update E2E test script to run directly in TeamCity configurations.
- Refactor URL assertions in `main-page-buttons.spec.ts` and `solutions-tab.spec.ts` to dynamically use `${baseURL}`.
- Ensure consistency across tests with `baseURL` and remove hardcoded URLs where applicable.
- Add `isProduction` usage in `footer-kotlin-ecosystem-buttons.spec.ts` to conditionally verify Opt-Out popup only in production.
- Fix imports formatting and adjust parameters for consistent test structure.
- Correct indentation in test blocks for better readability.
@zoobestik zoobestik force-pushed the playground/e2e-local branch from 752a4d4 to 83a721f Compare February 26, 2026 13:10
@zoobestik zoobestik merged commit 82d4a4f into master Feb 26, 2026
5 checks passed
@zoobestik zoobestik deleted the playground/e2e-local branch February 26, 2026 13:33
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.

2 participants