Skip to content

Feature: Implement KCL Linting with Dagger-based CI #12

@patrick-hermann-sva

Description

@patrick-hermann-sva

Feature Request: Implement KCL Linting

Problem Statement / Feature Request

This issue proposes the integration of KCL (Kusion Configuration Language) linting into our development workflows. By introducing KCL linting, we aim to enhance the quality, consistency, and maintainability of our KCL configurations, ensuring best practices are followed and potential issues are caught early in the development cycle.

Proposed Solution / Requirements

To achieve comprehensive KCL linting, the following actions are required:

  1. Integrate KCL Linting into GitHub Workflows:

    • Add a dedicated step or job within our existing or new GitHub Actions workflows to perform KCL linting on relevant files.
    • Ensure the workflow fails if linting errors are detected, preventing problematic configurations from being merged.
  2. Add KCL Linting to Taskfile:

    • Introduce a new task in Taskfile.yaml that allows developers to run KCL linting locally.
    • This task should provide a convenient way to check KCL configurations before committing changes, aligning with our "fail fast" principle.
  3. Develop Dagger-based CI Module for KCL Linting:

    • The continuous integration (CI) module responsible for executing KCL linting should be built using Dagger.
    • Leveraging Dagger will provide benefits such as:
      • Reproducibility: Ensure linting runs consistently across all environments.
      • Local Development Experience: Allow developers to run the exact same linting logic locally as in CI.
      • Caching: Optimize linting execution times through efficient caching.
      • Reusability: Promote the creation of reusable CI components.

Additional Notes / Considerations

  • Tooling: We will need to identify and select the most suitable KCL linting tool(s) or libraries available.
  • Configuration: Define clear linting rules and configurations that align with our project's standards.
  • Documentation: Document the new KCL linting process, including how to run it locally and its role in the CI/CD pipeline.

Actionable Next Steps

  • Research and select appropriate KCL linting tool(s) or libraries.
  • Implement KCL linting in a new or existing GitHub Actions workflow.
  • Create/Update a Taskfile entry for local KCL linting.
  • Develop the Dagger-based CI module for KCL linting, ensuring it integrates seamlessly with GitHub Workflows and the local Taskfile setup.
  • Document the KCL linting setup and usage guidelines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions