<< All versions

Skill v1.0.0

currentLLM-judged scan90/100
konflux-ci/integration-service/running-e2e-tests
──Details
PublishedOctober 23, 2026 at 04:45 AM
Content Hashsha256:8098983cc2c47cc1...
Git SHAbc403ee70079
──Files
Files (1 file, 3.6 KB)
SKILL.md3.6 KBactive
SKILL.md · 85 lines · 3.6 KB

version: "1.0.0" 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.


Running E2E Tests

Overview

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.

When to Use

  • Running e2e tests locally or in CI
  • Adding new e2e test cases
  • Debugging e2e test failures
  • Understanding the CI pipeline that provisions clusters and runs tests

Quick Reference

CommandWhat it does
make e2e-buildBuild test binary: ./e2e-tests/bin/e2e-appstudio (build tag: e2e)
make e2e-runBuild 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.xmlGenerate JUnit report

Required Environment Variables

VariablePurpose
GITHUB_TOKENGitHub API access for test repos
MY_GITHUB_ORGGitHub org containing test repos
KUBECONFIGPath to cluster kubeconfig

Optional Environment Variables

VariableDefaultPurpose
TEST_ENVIRONMENTdownstreamupstream (Kind) or downstream (OpenShift)
E2E_APPLICATIONS_NAMESPACE_ENVauto-createdTest namespace
SKIP_PAC_TESTSfalseSkip Pipelines-as-Code tests
KLOG_VERBOSITY1Log 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

Test Framework

The framework (e2e-tests/pkg/framework/framework.go) provides:

  • `AsKubeAdmin` / `AsKubeDeveloper` — permission contexts with specialized controllers
  • ControllerHub — HasController (apps/components), TektonController (PipelineRuns), IntegrationController (ITS), ReleaseController, CommonController (namespaces)
  • Auto-detects cluster type and domain from OpenShift console route
  • Auto-creates test namespace if E2E_APPLICATIONS_NAMESPACE_ENV not set

CI Pipeline

integration-tests/pipelines/konflux-e2e-tests.yaml runs the full flow:

  1. Extract snapshot/component metadata
  2. Provision Kind cluster on AWS via MAPT
  3. Deploy full Konflux stack using konflux-ci deployment scripts
  4. Run e2e tests (2h timeout, 10 parallel Ginkgo procs)
  5. Collect coverage, report status, deprovision cluster

Test Files

Tests live in e2e-tests/tests/integration-service/:

  • integration.go — core integration test scenarios
  • status-reporting-to-pullrequest.go — PR status reporting tests
  • group-snapshots-tests.go — ComponentGroup snapshot tests
  • gitlab-integration-reporting.go / forgejo-integration-reporting.go — multi-platform git provider tests

Common Mistakes

ProblemFix
GITHUB_TOKEN rate limitedCI rotates tokens for highest rate limit — locally, use a PAT with sufficient scope
Tests hang waiting for PipelineRunCheck cluster has Tekton installed and ITS configured correctly
TEST_ENVIRONMENT wrongUse upstream for Kind, downstream for OpenShift — affects cluster discovery
Namespace not cleaned upFramework auto-cleans on success; failed runs may leave namespaces behind
All versions