• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 24103052497

07 Apr 2026 08:33PM UTC coverage: 52.311% (-40.6%) from 92.909%
24103052497

Pull #23228

github

web-flow
Merge 18fdfb0fd into b05152cd9
Pull Request #23228: Add persistent dependency inference cache for incremental --changed-dependents

31 of 136 new or added lines in 2 files covered. (22.79%)

23028 existing lines in 605 files now uncovered.

31671 of 60544 relevant lines covered (52.31%)

1.05 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.14
/src/python/pants/backend/helm/check/kubeconform/deployment.py
1
# Copyright 2023 Pants project contributors (see CONTRIBUTORS.md).
2
# Licensed under the Apache License, Version 2.0 (see LICENSE).
3

4
from __future__ import annotations
2✔
5

6
import logging
2✔
7
from dataclasses import dataclass
2✔
8

9
from pants.backend.helm.check.kubeconform import common, extra_fields
2✔
10
from pants.backend.helm.check.kubeconform.common import (
2✔
11
    KubeconformCheckRequest,
12
    RunKubeconformRequest,
13
    run_kubeconform,
14
)
15
from pants.backend.helm.check.kubeconform.extra_fields import KubeconformFieldSet
2✔
16
from pants.backend.helm.check.kubeconform.subsystem import KubeconformSubsystem
2✔
17
from pants.backend.helm.dependency_inference import deployment as infer_deployment
2✔
18
from pants.backend.helm.subsystems.post_renderer import setup_post_renderer_launcher
2✔
19
from pants.backend.helm.target_types import HelmDeploymentFieldSet
2✔
20
from pants.backend.helm.util_rules import post_renderer, renderer
2✔
21
from pants.backend.helm.util_rules.post_renderer import HelmDeploymentPostRendererRequest
2✔
22
from pants.backend.helm.util_rules.renderer import (
2✔
23
    HelmDeploymentCmd,
24
    HelmDeploymentRequest,
25
    run_renderer,
26
)
27
from pants.core.goals.check import CheckRequest, CheckResult, CheckResults
2✔
28
from pants.engine.rules import collect_rules, concurrently, implicitly, rule
2✔
29
from pants.engine.unions import UnionRule
2✔
30

31
logger = logging.getLogger(__name__)
2✔
32

33

34
@dataclass(frozen=True)
2✔
35
class KubeconformDeploymentFieldSet(HelmDeploymentFieldSet, KubeconformFieldSet):
2✔
36
    pass
2✔
37

38

39
class KubeconformCheckDeploymentRequest(KubeconformCheckRequest):
2✔
40
    field_set_type = KubeconformDeploymentFieldSet
2✔
41

42

43
@rule
2✔
44
async def run_kubeconform_on_deployment(
2✔
45
    field_set: KubeconformDeploymentFieldSet,
46
) -> CheckResult:
47
    if field_set.skip.value:
2✔
UNCOV
48
        return CheckResult(
×
49
            exit_code=0, stdout="", stderr="", partition_description=field_set.address.spec
50
        )
51

52
    post_renderer = await setup_post_renderer_launcher(
2✔
53
        **implicitly(HelmDeploymentPostRendererRequest(field_set))
54
    )
55
    rendered_files = await run_renderer(
2✔
56
        **implicitly(
57
            HelmDeploymentRequest(
58
                field_set,
59
                cmd=HelmDeploymentCmd.RENDER,
60
                post_renderer=post_renderer,
61
                description=f"Evaluating Helm deployment files for {field_set.address}",
62
            )
63
        )
64
    )
65

66
    return await run_kubeconform(RunKubeconformRequest(field_set, rendered_files), **implicitly())
2✔
67

68

69
@rule
2✔
70
async def run_check_deployment(
2✔
71
    request: KubeconformCheckDeploymentRequest,
72
    kubeconform: KubeconformSubsystem,
73
) -> CheckResults:
74
    check_results = await concurrently(
2✔
75
        run_kubeconform_on_deployment(field_set) for field_set in request.field_sets
76
    )
77
    return CheckResults(check_results, checker_name=kubeconform.name)
2✔
78

79

80
def rules():
2✔
81
    return [
2✔
82
        *collect_rules(),
83
        *extra_fields.rules(),
84
        *infer_deployment.rules(),
85
        *post_renderer.rules(),
86
        *renderer.rules(),
87
        *common.rules(),
88
        UnionRule(CheckRequest, KubeconformCheckDeploymentRequest),
89
    ]
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc