Skip to content

ci: E2E jobs run on backend-only PRs again - #396

Merged
HardMax71 merged 1 commit into
mainfrom
ci/e2e-after-skipped-unit-job
Oct 18, 2026
Merged

HardMax71 merged 1 commit into
mainfrom
ci/e2e-after-skipped-unit-job

Conversation

@HardMax71

@HardMax71 HardMax71 commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Summary

Small bug found while checking #394's CI: on a PR that skips Frontend Unit Tests, CI skips both E2E jobs too, so every backend-only PR since #368 merged without E2E (#391, #392, #394, #395). A break showed up only on main. Of the last 40 PR runs that ran Backend Unit Tests, all 14 that skipped Frontend Unit Tests skipped Backend E2E as well, for example #394's run with backend = true.

Changes

Both E2E jobs need build-images, and build-images needs frontend-unit. Without a status function in the if, a skip "applies to all jobs in the dependency chain from the point of failure or skip onwards", even though build-images itself ran. The E2E conditions now start with !cancelled() && needs.build-images.result == 'success', the way build-images already handles its skipped needs. cicd.md says why.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/CD or tooling changes

Test Plan

  • Backend unit tests pass (cd backend && uv run pytest tests/unit)
  • Frontend unit tests pass (cd frontend && npm run test)
  • Backend E2E tests pass (docker compose exec -T backend sh -c 'uv sync --group test --no-dev --frozen --no-install-project --no-build && pytest tests/e2e')
  • Frontend E2E tests pass (cd frontend && npm run test:e2e)
  • API spec and client regenerated if routes or schemas changed (./deploy.sh openapi, then ./deploy.sh types), never edited by hand
  • Manual testing performed

Validation: actionlint passes. This PR changes ci.yml, so every filter is on and its own run can't show the skip; the next backend-only PR will.

Checklist

  • My code follows the project's style guidelines
  • I have run pre-commit run --all-files and all checks pass
  • I have added tests that prove my fix/feature works
  • I have updated documentation if needed
  • My changes don't introduce new warnings

Summary by cubic

Restores E2E coverage on backend-only PRs. Skipping the frontend unit job previously cascaded down the needs chain and skipped both E2E jobs, even though build-images ran fine.

Both E2E jobs now gate on !cancelled() && needs.build-images.result == 'success' in their own if conditions, matching how build-images already handles skipped needs. cicd.md now documents why the status function is required.

Written for commit 91b055c. Summary will update on new commits.

View guided diff Turn on auto-fix

Both E2E jobs need build-images, which needs frontend-unit. On a backend-only PR frontend-unit is skipped, build-images still runs through its !cancelled() && !failure() check, but GitHub skips every job below a skipped one in the needs chain unless the job's if has a status function. So since #368 every backend-only PR merged without E2E. The E2E jobs now check !cancelled() and build-images' result themselves.
@HardMax71
HardMax71 enabled auto-merge (squash) October 18, 2026 22:10
@github-actions github-actions Bot added documentation Improvements or additions to documentation area: ci GitHub workflows, test infrastructure, repo tooling labels Oct 18, 2026
@coderabbitai

coderabbitai Bot commented Oct 18, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: f2b8ccf3-4017-476b-9d0e-5aff962d591e
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@codecov-commenter

codecov-commenter commented Oct 18, 2026 •

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Flag Coverage Δ
backend-e2e 82.52% <ø> (ø)
backend-unit 73.06% <ø> (ø)
frontend-unit 92.60% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
Backend 91.89% <ø> (ø)
Frontend 92.60% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@HardMax71
HardMax71 merged commit 127a488 into main Oct 18, 2026
21 checks passed
@HardMax71
HardMax71 deleted the ci/e2e-after-skipped-unit-job branch October 18, 2026 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci GitHub workflows, test infrastructure, repo tooling documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants