بنقرة واحدة
running-e2e-tests
// Use when building, configuring, or running e2e tests for integration-service against a real cluster (Kind or OpenShift). Covers environment variables, test framework, Ginkgo flags, CI pipeline, and test repos.
// Use when building, configuring, or running e2e tests for integration-service against a real cluster (Kind or OpenShift). Covers environment variables, test framework, Ginkgo flags, CI pipeline, and test repos.
Use when CI checks fail unexpectedly, when preparing code for CI, or when encountering non-obvious build and pipeline behavior. Covers vendoring, hermetic builds, security scans, code generation checks, coverage, and webhook validation gotchas.
Use when debugging integration-service running on a cluster. Covers pod logs, health probes, metrics, webhooks, network policies, environment variables, snapshot GC, and common failure modes.
Use when setting up a local development environment, deploying integration-service to a cluster, installing CRDs, or tearing down a Kind cluster. Covers make targets, kustomize deployment, and full Konflux stack setup.
Use when preparing a pull request for review, before pushing, or when reviewing someone else's PR. Checklist of CI checks, commit conventions, code generation, testing, and documentation requirements.
Use when running, writing, or troubleshooting unit tests for integration-service. Covers make test, envtest setup, suite patterns, mock loader, CRD discovery, coverage, and common test failures.
| name | running-e2e-tests |
| description | Use when building, configuring, or running e2e tests for integration-service against a real cluster (Kind or OpenShift). Covers environment variables, test framework, Ginkgo flags, CI pipeline, and test repos. |
E2E tests run against a real Kubernetes cluster (Kind for upstream, OpenShift for downstream). They use a custom framework in e2e-tests/pkg/framework/ with specialized controllers for managing Konflux resources during tests.
| Command | What it does |
|---|---|
make e2e-build | Build test binary: ./e2e-tests/bin/e2e-appstudio (build tag: e2e) |
make e2e-run | Build and run with --ginkgo.focus="integration-service" --ginkgo.vv |
./e2e-tests/bin/e2e-appstudio --ginkgo.focus="test name" | Run specific tests |
--ginkgo.label-filter="!slow" | Filter by Ginkgo labels |
--ginkgo.junit-report=report.xml | Generate JUnit report |
| Variable | Purpose |
|---|---|
GITHUB_TOKEN | GitHub API access for test repos |
MY_GITHUB_ORG | GitHub org containing test repos |
KUBECONFIG | Path to cluster kubeconfig |
| Variable | Default | Purpose |
|---|---|---|
TEST_ENVIRONMENT | downstream | upstream (Kind) or downstream (OpenShift) |
E2E_APPLICATIONS_NAMESPACE_ENV | auto-created | Test namespace |
SKIP_PAC_TESTS | false | Skip Pipelines-as-Code tests |
KLOG_VERBOSITY | 1 | Log verbosity (1-5) |
GITLAB_BOT_TOKEN | - | GitLab API access |
GITLAB_QE_ORG / GITLAB_API_URL | - | GitLab org and endpoint |
CODEBERG_BOT_TOKEN / CODEBERG_QE_ORG | - | Codeberg access |
The framework (e2e-tests/pkg/framework/framework.go) provides:
AsKubeAdmin / AsKubeDeveloper — permission contexts with specialized controllersHasController (apps/components), TektonController (PipelineRuns), IntegrationController (ITS), ReleaseController, CommonController (namespaces)E2E_APPLICATIONS_NAMESPACE_ENV not setintegration-tests/pipelines/konflux-e2e-tests.yaml runs the full flow:
konflux-ci deployment scriptsTests live in e2e-tests/tests/integration-service/:
integration.go — core integration test scenariosstatus-reporting-to-pullrequest.go — PR status reporting testsgroup-snapshots-tests.go — ComponentGroup snapshot testsgitlab-integration-reporting.go / forgejo-integration-reporting.go — multi-platform git provider tests| Problem | Fix |
|---|---|
GITHUB_TOKEN rate limited | CI rotates tokens for highest rate limit — locally, use a PAT with sufficient scope |
| Tests hang waiting for PipelineRun | Check cluster has Tekton installed and ITS configured correctly |
TEST_ENVIRONMENT wrong | Use upstream for Kind, downstream for OpenShift — affects cluster discovery |
| Namespace not cleaned up | Framework auto-cleans on success; failed runs may leave namespaces behind |