Skip to content

feat: add support to subscription configuration (#72) #17

feat: add support to subscription configuration (#72)

feat: add support to subscription configuration (#72) #17

Workflow file for this run

name: Validate GitOps Manifests
on:
pull_request:
paths-ignore:
- '**/*.md'
- 'LICENSE'
- '.gitignore'
- 'chart/**'
push:
branches:
- main
paths-ignore:
- '**/*.md'
- 'LICENSE'
- '.gitignore'
- 'chart/**'
workflow_dispatch:
permissions:
contents: read
jobs:
validation:
name: Static Validation
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install validation tools
run: make tools
- name: Run YAML validation
id: yaml-check
continue-on-error: true
run: |
make validate-yaml 2>&1 | tee /tmp/yaml-output.txt
exit ${PIPESTATUS[0]}
- name: Run Kustomize build validation
id: kustomize-check
continue-on-error: true
run: |
make validate-kustomize 2>&1 | tee /tmp/kustomize-output.txt
exit ${PIPESTATUS[0]}
- name: Run best practices linting
id: lint-check
continue-on-error: true
run: |
make validate-lint 2>&1 | tee /tmp/lint-output.txt
exit ${PIPESTATUS[0]}
- name: Generate validation summary
if: always()
run: |
echo "## Validation Results" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
# Overall status
if [[ "${{ steps.yaml-check.outcome }}" == "success" && "${{ steps.kustomize-check.outcome }}" == "success" && "${{ steps.lint-check.outcome }}" == "success" ]]; then
echo "✅ **All validations passed!**" >> $GITHUB_STEP_SUMMARY
else
echo " **Some validations failed**" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "| Check | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-------|--------|" >> $GITHUB_STEP_SUMMARY
# YAML validation status
if [[ "${{ steps.yaml-check.outcome }}" == "success" ]]; then
echo "| YAML Lint | ✅ Passed |" >> $GITHUB_STEP_SUMMARY
else
echo "| YAML Lint | ❌ Failed |" >> $GITHUB_STEP_SUMMARY
fi
# Kustomize validation status
if [[ "${{ steps.kustomize-check.outcome }}" == "success" ]]; then
echo "| Kustomize Build | ✅ Passed |" >> $GITHUB_STEP_SUMMARY
else
echo "| Kustomize Build | ❌ Failed |" >> $GITHUB_STEP_SUMMARY
fi
# Lint validation status
if [[ "${{ steps.lint-check.outcome }}" == "success" ]]; then
echo "| Best Practices | ✅ Passed |" >> $GITHUB_STEP_SUMMARY
else
echo "| Best Practices | ❌ Failed |" >> $GITHUB_STEP_SUMMARY
fi
# Show error details for failed checks
echo "" >> $GITHUB_STEP_SUMMARY
if [[ "${{ steps.yaml-check.outcome }}" != "success" || "${{ steps.kustomize-check.outcome }}" != "success" || "${{ steps.lint-check.outcome }}" != "success" ]]; then
echo "### Error Details" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [[ "${{ steps.yaml-check.outcome }}" != "success" && -f /tmp/yaml-output.txt ]]; then
echo "<details>" >> $GITHUB_STEP_SUMMARY
echo "<summary>YAML Lint Errors</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
tail -50 /tmp/yaml-output.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
fi
if [[ "${{ steps.kustomize-check.outcome }}" != "success" && -f /tmp/kustomize-output.txt ]]; then
echo "<details>" >> $GITHUB_STEP_SUMMARY
echo "<summary>Kustomize Build Errors</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
tail -50 /tmp/kustomize-output.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
fi
if [[ "${{ steps.lint-check.outcome }}" != "success" && -f /tmp/lint-output.txt ]]; then
echo "<details>" >> $GITHUB_STEP_SUMMARY
echo "<summary>Best Practices Lint Errors</summary>" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
tail -50 /tmp/lint-output.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "</details>" >> $GITHUB_STEP_SUMMARY
fi
fi
- name: Fail if validations failed
if: steps.yaml-check.outcome != 'success' || steps.kustomize-check.outcome != 'success' || steps.lint-check.outcome != 'success'
run: |
echo "One or more validations failed. Check the summary above for details."
exit 1