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

pantsbuild / pants / 24145062409

08 Apr 2026 03:56PM UTC coverage: 52.369% (-40.5%) from 92.91%
24145062409

Pull #23233

github

web-flow
Merge 7a7652ebe into 9036734c9
Pull Request #23233: Introduce a LockfileFormat enum.

7 of 10 new or added lines in 3 files covered. (70.0%)

23048 existing lines in 605 files now uncovered.

31656 of 60448 relevant lines covered (52.37%)

0.52 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
1✔
5

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

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

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

33

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

38

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

42

43
@rule
1✔
44
async def run_kubeconform_on_deployment(
1✔
45
    field_set: KubeconformDeploymentFieldSet,
46
) -> CheckResult:
47
    if field_set.skip.value:
1✔
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(
1✔
53
        **implicitly(HelmDeploymentPostRendererRequest(field_set))
54
    )
55
    rendered_files = await run_renderer(
1✔
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())
1✔
67

68

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

79

80
def rules():
1✔
81
    return [
1✔
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