Skip to main content

Continuous integration

Every push and pull request is gated by path-scoped GitHub Actions workflows under .github/workflows/:

WorkflowTriggers on changes toRuns
backend-ci.ymlservices/**, root pom.xml, shared/contracts/**mvn -B verify for the full Maven reactor: build, unit/integration tests, and the JaCoCo 100% line-coverage gate
infra-ci.ymldocker-compose.yml, infrastructure/**, .env.exampledocker compose config against .env.example, to catch YAML/interpolation errors without starting any container

These two run only when their own paths change. The dashboard has its own repository and CI (OpenJCockpit-frontend), so it never waits on a Maven build and vice versa. ci-summary.yml is the orchestrator: it always runs, decides which of the legs apply to the current diff, and fans the results into a single required check named ci-summary. That's the one check to require in GitHub branch protection (the leg checks are conditionally skipped and would block merges forever if required directly). If it cannot determine the changed files, it fails open and runs all legs. None of these jobs start Postgres, Keycloak, or OPA: module tests already use Testcontainers/mocks, and the Compose check only validates static config.

This is CI only: no image publishing, no deployment.

Other workflows​

WorkflowPurpose
e2e-ci.ymlPlaywright E2E suite (critical set blocking) in reduced mode. The suite lives in the OpenJCockpit-frontend repository; this workflow checks it out into .frontend/ and runs it against this repository's reduced stack (OJC_BACKEND_DIR). Set the FRONTEND_REF repository variable to test against a frontend branch. If the frontend repository is private, add a CROSS_REPO_TOKEN secret with read access to it. Non-blocking and informational: not part of ci-summary, failures never fail a PR, no artefact upload (artefacts can contain live tokens). See Testing.
pages.ymlDeploys docs-site/ to GitHub Pages on changes to main (openjcockpit.github.io/OpenJCockpit).
renovate.ymlDependency updates. See Dependency management.

Playwright is not a blocking gate​

Playwright is a local and QA-agent gate; its GitHub Actions leg is informational only. A change confined to e2e/ in the frontend repository does not trigger any leg here. This is a named, accepted gap, not a silent omission: the QA engineer agent runs the suite as part of its independent gate today, and making CI enforcement blocking is a stated follow-up.

The original README referred to docs/delivery/ci-pipeline/ and docs/delivery/playwright-e2e-testing/ for the full CI spec, the manual branch-protection step and open items. Those folders are not present in this repository.

Synced from OpenJCockpit@main. To change this page, edit it in the product repository.