aws-samples / aws-samples/sample-genai-on-eks-starter-kit
Consider an extensible component-level static validation Action
- 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
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