Skip to content

Consolidate OpenLineage e2e tests into airflow-e2e-tests#69671

Merged
jason810496 merged 5 commits into
apache:mainfrom
shahar1:consolidate-openlineage-e2e-tests
Jul 11, 2026
Merged

Consolidate OpenLineage e2e tests into airflow-e2e-tests#69671
jason810496 merged 5 commits into
apache:mainfrom
shahar1:consolidate-openlineage-e2e-tests

Conversation

@shahar1

@shahar1 shahar1 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Following review feedback on #69212, the OpenLineage provider e2e tests are consolidated into the existing airflow-e2e-tests/ framework instead of the standalone providers-e2e-tests/ framework introduced there.

airflow-e2e-tests/ already hosts deployed-stack suites for providers (Elasticsearch/OpenSearch remote logging, Kafka event-driven), so the separate framework duplicated setup that already exists. OpenLineage now runs as an openlineage --e2e-test-mode: it reuses the shared docker-compose base, the testcontainers conftest, and the shared AirflowClient, adding only a compose overlay for the OpenLineage env config and a small runner that drives the provider's system-test DAGs.

The standalone providers-e2e-tests/ tree, its breeze testing providers-e2e-tests command, its uv workspace member and its dedicated CI workflow are removed. The older-Airflow compatibility matrix (the only feature unique to that framework) is dropped along with it.

related: #69212


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 4.8)

Generated-by: Claude Code (Opus 4.8) following the guidelines

@potiuk potiuk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

NICE!

@potiuk

potiuk commented Jul 9, 2026

Copy link
Copy Markdown
Member
Screenshot 2026-07-09 at 22 23 29

@potiuk

potiuk commented Jul 9, 2026

Copy link
Copy Markdown
Member

Love it !!!!

@shahar1

shahar1 commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

NICE!

The credit goes to @jason810496 for the idea :)

@potiuk

potiuk commented Jul 9, 2026

Copy link
Copy Markdown
Member

ALMOST !

@jason810496

Copy link
Copy Markdown
Member

NICE!

The credit goes to @jason810496 for the idea :)

Thanks Shahar for consolidating this!

@shahar1
shahar1 force-pushed the consolidate-openlineage-e2e-tests branch from 87dec0a to 5844acb Compare July 10, 2026 04:32
@shahar1
shahar1 requested a review from kacpermuda July 10, 2026 05:47
@shahar1

shahar1 commented Jul 10, 2026

Copy link
Copy Markdown
Contributor Author

CC: @kacpermuda

Comment thread .github/workflows/additional-prod-image-tests.yml

@kacpermuda kacpermuda left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Two more comments, in general a very nice cleanup PR moving these tests to a common structure. Thanks for doing it !

Comment thread providers-e2e-tests/openlineage/README.md Outdated
shahar1 added 4 commits July 10, 2026 17:00
The OpenLineage provider e2e suite was introduced as a standalone
`providers-e2e-tests/` framework with its own docker-compose stack,
harness, Dockerfile, breeze command and CI workflow. Review feedback on
the introducing PR pointed out that `airflow-e2e-tests/` already hosts
deployed-stack suites for providers (Elasticsearch/OpenSearch remote
logging, Kafka event-driven), so a second parallel framework duplicates
setup that already exists.

Fold OpenLineage in as an `openlineage` E2E test mode: it reuses the
shared docker-compose base, the testcontainers conftest, and the
`AirflowClient`, adding only an overlay for the OpenLineage env config
and a small runner that drives the provider's system-test DAGs. The
separate framework, its breeze command, workspace member and dedicated
workflow are removed; the older-Airflow compatibility matrix is dropped
along with them.
The repo root was computed with an off-by-one parents index, so the
system-test DAGs source resolved outside the repository and the e2e
session failed at startup in CI. Reuse AIRFLOW_ROOT_PATH from the e2e
framework constants instead of re-deriving it.

Generated-by: Claude Code (Fable 5)
The shared AirflowClient parsed every response body as JSON, but the
variable-deletion cleanup in the OpenLineage e2e harness issues DELETE
requests that return 204 No Content, whose empty body is not valid JSON.
Review feedback on the consolidation asked to keep the compatibility
coverage that ran the OpenLineage suite against older released Airflow
versions with current provider code — it catches core-vs-provider
breakages early, which matters for a provider as tightly coupled to core
as OpenLineage. To keep PR CI cheap, the compat matrix now runs on canary
(scheduled / main) only; PRs still run the PROD-image job. Also restores
the suite's README next to the tests for debugging reference.
@shahar1
shahar1 force-pushed the consolidate-openlineage-e2e-tests branch from 5ac6613 to 65b671d Compare July 10, 2026 14:20
…label

The compat matrix was gated to canary-only, giving no way to exercise it
on a PR for a larger OpenLineage change. Add a dedicated
run-openlineage-e2e-compat-tests selective-check output (canary or the
explicit 'full tests needed' label) so maintainers can opt a PR in, while
keeping it off ordinary OpenLineage PRs. Deliberately not tied to derived
full_tests_needed, matching the run-ui-e2e-tests convention.

@kacpermuda kacpermuda left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

All looks good, thanks for cleaning it up.

@jason810496
jason810496 merged commit 37783b8 into apache:main Jul 11, 2026
301 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Backport failed to create: v3-3-test. View the failure log Run details

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
v3-3-test Commit Link

You can attempt to backport this manually by running:

cherry_picker 37783b8 v3-3-test

This should apply the commit to the v3-3-test branch and leave the commit in conflict state marking
the files that need manual conflict resolution.

After you have resolved the conflicts, you can continue the backport process by running:

cherry_picker --continue

If you don't have cherry-picker installed, see the installation guide.

@shahar1
shahar1 deleted the consolidate-openlineage-e2e-tests branch July 11, 2026 03:42
joshuabvarghese pushed a commit to joshuabvarghese/airflow that referenced this pull request Jul 16, 2026
* Consolidate OpenLineage e2e tests into airflow-e2e-tests

The OpenLineage provider e2e suite was introduced as a standalone
`providers-e2e-tests/` framework with its own docker-compose stack,
harness, Dockerfile, breeze command and CI workflow. Review feedback on
the introducing PR pointed out that `airflow-e2e-tests/` already hosts
deployed-stack suites for providers (Elasticsearch/OpenSearch remote
logging, Kafka event-driven), so a second parallel framework duplicates
setup that already exists.

Fold OpenLineage in as an `openlineage` E2E test mode: it reuses the
shared docker-compose base, the testcontainers conftest, and the
`AirflowClient`, adding only an overlay for the OpenLineage env config
and a small runner that drives the provider's system-test DAGs. The
separate framework, its breeze command, workspace member and dedicated
workflow are removed; the older-Airflow compatibility matrix is dropped
along with them.

* Fix OpenLineage e2e system-tests path resolution

The repo root was computed with an off-by-one parents index, so the
system-test DAGs source resolved outside the repository and the e2e
session failed at startup in CI. Reuse AIRFLOW_ROOT_PATH from the e2e
framework constants instead of re-deriving it.

Generated-by: Claude Code (Fable 5)

* Fix OpenLineage e2e crash on 204 responses from variable deletion

The shared AirflowClient parsed every response body as JSON, but the
variable-deletion cleanup in the OpenLineage e2e harness issues DELETE
requests that return 204 No Content, whose empty body is not valid JSON.

* Restore OpenLineage e2e older-Airflow compat matrix and README

Review feedback on the consolidation asked to keep the compatibility
coverage that ran the OpenLineage suite against older released Airflow
versions with current provider code — it catches core-vs-provider
breakages early, which matters for a provider as tightly coupled to core
as OpenLineage. To keep PR CI cheap, the compat matrix now runs on canary
(scheduled / main) only; PRs still run the PROD-image job. Also restores
the suite's README next to the tests for debugging reference.

* Allow triggering OpenLineage e2e compat matrix via full-tests-needed label

The compat matrix was gated to canary-only, giving no way to exercise it
on a PR for a larger OpenLineage change. Add a dedicated
run-openlineage-e2e-compat-tests selective-check output (canary or the
explicit 'full tests needed' label) so maintainers can opt a PR in, while
keeping it off ordinary OpenLineage PRs. Deliberately not tied to derived
full_tests_needed, matching the run-ui-e2e-tests convention.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:dev-tools area:production-image Production image improvements and fixes backport-to-v3-3-test Backport to v3-3-test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants