aws-samples / aws-samples/sample-genai-on-eks-starter-kit

Consider an extensible component-level static validation Action

Open
#185 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
94
Forks
59
Avg merge
1d 16h
Merged PRs (30d)
8

Description

### Background

This project may receive component updates from contributors with different levels of familiarity with its structure, conventions, and underlying tools. Automated static validation could lower the barrier to contribution by providing contributors with early, actionable feedback. This would allow them to verify formatting, syntax, and configuration standards without requiring detailed knowledge of every component or access to a running infrastructure environment. From a maintainer’s perspective, consistently validating component updates could also help preserve the overall quality, consistency, and robustness of the project as it continues to evolve.

### Description

Would it be useful to introduce an extensible, open-source GitHub Action for component-level static validation?
When a pull request is opened or updated, the Action would identify files changed between the base and head branches and map them to affected components under: `components///` It would then orchestrate the applicable static validation tools for those components and return actionable feedback to the pull request, including the affected components, checks performed, and detected issues.
This would provide contributors with early feedback on formatting, syntax, structure, and configuration problems without provisioning infrastructure, requiring cloud credentials, or accessing a running EKS cluster.

### Process

1. Pull request trigger
* When a pull request is opened or its head branch is updated, GitHub Actions triggers the validation workflow.

2. Validation orchestration
* The workflow invokes the static validation orchestrator with information about the pull request changes.

3. Rule-based static validation
* The orchestrator identifies affected components from the changed file paths and runs the applicable tool-native validators according to predefined rules.

4. Pull request feedback
* The results are reported through GitHub Actions. If issues are detected, actionable feedback could also be added to the pull request using GitHub Script.

### Coverage

Initial validation coverage could rely on established tool-native checks such as:

- node --check
- Checks JavaScript syntax without executing the application.

- terraform fmt -check
- Verifies that Terraform files follow standard formatting conventions.

- terraform validate
- Checks Terraform configuration syntax and internal consistency without provisioning infrastructure.

- helm lint
- Examines a Helm chart for structural and configuration issues.

- helm template
- Renders Helm templates locally to detect template and values-related problems without connecting to a Kubernetes cluster.

The exact validators and validation inputs could be introduced incrementally based on each component’s structure. Where a validator requires additional input, lightweight fixtures or component metadata could provide template variables, example values, or other minimal configuration. The validator interface could remain extensible so that additional checks for YAML, Kubernetes manifests, shell scripts, Dockerfiles, and other component types can be added as the project’s validation requirements evolve.

### Extensibility

Existing open-source validation suites, such as Super-Linter, already orchestrate multiple linters and formatters.
The initial implementation could provide a lightweight, project-specific orchestration layer over tool-native validators while keeping the validator interface extensible. Broader validation suites such as Super-Linter could then be integrated as optional validators where their coverage is useful.
GitHub-maintained Actions and APIs could also be used for repository checkout, pull request integration, and result reporting.

### References

- GitHub custom Action metadata
- GitHub Script
- Super-Linter
- Helm lint
- Helm template
- Terraform fmt
- Terraform validate
- Node.js --check

Contributor guide

Open the contributing guide

Research direction

Start by reviewing changed files under components/// and the GitHub custom Action metadata reference. Compare the proposed node --check, terraform fmt/validate, helm lint/template checks and pull request triggers with the repository's component structure. Done means an extensible workflow identifies affected components, runs applicable validators, and reports results on pull requests.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, helm, javascript, kubernetes, node.js, terraform
Domain
ci-cd, devops, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.