Skip to content

test: add acceptance coverage for the ITS pipeline - #3591

Open
dheerajodha wants to merge 1 commit into
conforma:mainfrom
dheerajodha:EC-1948
Open

dheerajodha wants to merge 1 commit into
conforma:mainfrom
dheerajodha:EC-1948

Conversation

@dheerajodha

Copy link
Copy Markdown
Contributor

What:

Add acceptance coverage for the ITS pipeline in a kind cluster using the pipeline definition and task bundles from the checkout. Scenarios cover a signed image passing validation, strict validation failure, and non-strict validation failure. Each checks both PipelineRun completion and the pipeline's TEST_OUTPUT result.

The Kubernetes test helpers now launch and await PipelineRuns with a bounded timeout. Rename the existing keyless ConfigMap fixture so its dummy service URLs do not affect concurrent pipeline tests.

Why:

Catch pipeline wiring and validation regressions in the CLI repository before merge, complementing the separate e2e coverage. The scenarios run in the existing acceptance suite and PR Checks workflow, which already includes pipeline-only changes.

Validation:

  • CGO_ENABLED=0 go test ./kubernetes/... in the acceptance module: passed (package compilation).
  • Repository golangci-lint on ./kubernetes/...: passed with zero issues.
  • Formatting and git diff --check: passed.
  • Focused @its-pipeline acceptance run reached PipelineRuns but could not complete locally: the Podman VM had insufficient memory for verify pods, and the existing test-image builder packaged a macOS binary into the Linux image (Exec format error). The blocked run was stopped and its test containers removed. End-to-end validation is still pending.

Tickets:

EC-1948

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: 1d9c1652-c12a-49e1-88ba-669858fcdadd

📥 Commits

Reviewing files that changed from the base of the PR and between 5520764 and 92a766c.

⛔ Files ignored due to path filters (1)
  • features/__snapshots__/task_validate_image.snap is excluded by !**/*.snap
📒 Files selected for processing (9)
  • acceptance/README.md
  • acceptance/kubernetes/kind/kind.go
  • acceptance/kubernetes/kind/pipeline.go
  • acceptance/kubernetes/kubernetes.go
  • acceptance/kubernetes/pipeline.go
  • acceptance/kubernetes/stub/stub.go
  • acceptance/kubernetes/types/types.go
  • features/pipeline_validate_image.feature
  • features/task_validate_image.feature

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.


📝 Walkthrough

Walkthrough

The acceptance framework now runs repository pipeline definitions in kind and checks PipelineRun outcomes and results. New scenarios cover image validation with signed and missing images. Related documentation and a task-test ConfigMap name were updated.

Changes

ITS pipeline acceptance

Layer / File(s) Summary
Pipeline execution in kind
acceptance/kubernetes/types/types.go, acceptance/kubernetes/kind/kind.go, acceptance/kubernetes/kind/pipeline.go, acceptance/kubernetes/stub/stub.go
The Cluster interface adds pipeline execution and completion methods, and PipelineInfo describes completion data. The kind implementation loads local pipeline definitions, replaces task bundle parameters, creates a PipelineRun and polls for completion. The stub implementation returns errors for these methods.
Pipeline acceptance steps
acceptance/kubernetes/pipeline.go, acceptance/kubernetes/kubernetes.go
Godog steps run a versioned pipeline, check whether it succeeds or fails, and compare its TEST_OUTPUT result. Step registration includes the new pipeline steps.
Image validation scenarios and documentation
features/pipeline_validate_image.feature, features/task_validate_image.feature, acceptance/README.md
The new feature covers signed-image success and missing-image results for both STRICT values. The task scenario uses cluster-config-keyless. The README describes running the tagged pipeline scenarios and fixture placement.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Sequence Diagram(s)

sequenceDiagram
  participant GodogSteps
  participant kindCluster
  participant KubernetesAPI
  GodogSteps->>kindCluster: RunPipeline with pipeline parameters
  kindCluster->>KubernetesAPI: Create PipelineRun
  GodogSteps->>kindCluster: AwaitUntilPipelineIsDone
  kindCluster->>KubernetesAPI: Poll PipelineRun
  KubernetesAPI-->>kindCluster: Completion status and results
  kindCluster-->>GodogSteps: PipelineInfo
Loading

Suggested reviewers: joejstuart, simonbaird

Merge Risk: ⚪ Minimal · up to 92a76

The change adds pipeline acceptance checks without an identified merge-blocking defect. Complete the normal acceptance checks; the reported local run did not finish.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 6 files. (3 skipped: 3… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding acceptance coverage for the ITS pipeline.
Description check ✅ Passed The description includes the required What, Why, and Tickets sections. It explains the changes, motivation, linked ticket, and validation status, including the pending end-to-end validation.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 6 functions across 6 files. (3 skipped: 3 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Create a new PR

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

@fullsend-ai-review fullsend-ai-review Bot added the risk/moderate PR risk: moderate label Sep 28, 2026
@fullsend-ai-review

Copy link
Copy Markdown

Risk Assessment: moderate (2/5)

Details

All changes are test/acceptance code with no production paths touched, but the XL size, new Cluster-interface method additions, and rename of a shared test fixture in a stable directory each contribute incremental integration risk, landing the PR at moderate.

@fullsend-ai-review

Copy link
Copy Markdown

Looks good to me

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Sep 28, 2026
@codecov

codecov Bot commented Sep 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Flag Coverage Δ
acceptance 54.51% <ø> (ø)
generative 12.25% <ø> (ø)
integration 23.56% <ø> (ø)
unit 72.24% <ø> (ø)

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dheerajodha
dheerajodha marked this pull request as ready for review October 1, 2026 13:10
@dheerajodha
dheerajodha requested a review from a team as a code owner October 1, 2026 13:10
@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ❌ Failure (ensuring provider "vertex-ai": provider create "vertex-ai" failed: exit status 1 (output: Error: × code: 'Client specified an invalid argument', message: "provider │ credentials are not declared by pr…) · Started 1:12 PM UTC · Completed 1:12 PM UTC

Commit: 92a766c · View workflow run →

Effort: high

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment risk/moderate PR risk: moderate size: XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant