Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ name: End-to-end tests

on:
workflow_dispatch:
push:

@raballew raballew Apr 7, 2026

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.

[AI-generated, human reviewed]

With the new push trigger, the e2e-tests job condition at line 38 may skip tests on push-to-main:

if: needs.changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch'

For push events, github.base_ref is empty, so dorny/paths-filter falls back to the base parameter ('main'). On squash merges or force-pushes, the push payload's before SHA may not be a direct ancestor, causing the filter to produce unexpected results. Since the if condition doesn't include github.event_name == 'push', e2e tests could be silently skipped on push to main.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

oh right, I forgot we had that filter, checking, thanks! :)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Ok, now the filtering base is fixed, and we always run the main E2E tests on all pushes (not the compat ones), as we just want an indication of any patch introducing flakiness in our codebase over the time.

branches:
- main
pull_request:
merge_group:

Expand All @@ -21,7 +24,7 @@ jobs:
- uses: dorny/paths-filter@v3
id: filter
with:
base: ${{ github.base_ref || github.event.merge_group.base_ref || 'main' }}
base: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }}
filters: |
e2e:
- 'controller/**'
Expand All @@ -32,19 +35,12 @@ jobs:

e2e-tests:
needs: changes
if: needs.changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch'
if: needs.changes.outputs.should_run == 'true' || github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/main')
strategy:
matrix:
os:
- ubuntu-24.04
- ubuntu-24.04-arm
method:
- operator
- helm
exclude:
# Only run operator on ARM, skip helm
- os: ubuntu-24.04-arm
method: helm
runs-on: ${{ matrix.os }}
timeout-minutes: 60
steps:
Expand All @@ -63,13 +59,13 @@ jobs:
run: make e2e-setup
env:
CI: true
METHOD: ${{ matrix.method }}
METHOD: operator

- name: Run e2e tests
run: make e2e-run
env:
CI: true
METHOD: ${{ matrix.method }}
METHOD: operator

# ============================================================================
# Compatibility tests: cross-version interop between controller and client/exporter
Expand Down
Loading