Skip to content

Commit 198c558

Browse files
committed
Kubernetes: Enhance KubeCheck workflow to detect valid Kubernetes YAML files and improve validation output
Signed-off-by: NotHarshhaa <[email protected]>
1 parent 2725671 commit 198c558

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

Diff for: .github/workflows/kubecheck.yml

+21-6
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,31 @@ jobs:
3939
curl -L https://github.com/yannh/kubeconform/releases/latest/download/kubeconform-linux-amd64.tar.gz | tar xz
4040
sudo mv kubeconform /usr/local/bin/
4141
42-
- name: Detect changed YAML files
42+
- name: Detect changed Kubernetes YAML files
4343
id: detect_changes
4444
run: |
4545
git fetch origin ${{ github.event.before }}
4646
CHANGED_FILES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E '\.ya?ml$' || true)
47-
if [ -z "$CHANGED_FILES" ]; then
48-
echo "No Kubernetes YAML changes found. Skipping validation."
47+
48+
echo "Detected YAML files:"
49+
echo "$CHANGED_FILES"
50+
51+
# Filter for real Kubernetes manifests (contains kind + apiVersion)
52+
VALID_KUBE_FILES=""
53+
for file in $CHANGED_FILES; do
54+
if [[ -f "$file" ]] && grep -q '^\s*apiVersion:' "$file" && grep -q '^\s*kind:' "$file"; then
55+
VALID_KUBE_FILES+="$file"$'\n'
56+
fi
57+
done
58+
59+
if [[ -z "$VALID_KUBE_FILES" ]]; then
60+
echo "No valid Kubernetes manifests found. Skipping validation."
4961
echo "changed=false" >> $GITHUB_OUTPUT
5062
else
51-
echo "$CHANGED_FILES" > changed_yamls.txt
63+
echo "$VALID_KUBE_FILES" > changed_yamls.txt
5264
echo "changed=true" >> $GITHUB_OUTPUT
65+
echo "Files to validate:"
66+
cat changed_yamls.txt
5367
fi
5468
5569
- name: Validate Kubernetes YAML
@@ -60,6 +74,7 @@ jobs:
6074
RESULTS=""
6175
PASS_COUNT=0
6276
FAIL_COUNT=0
77+
6378
while IFS= read -r file; do
6479
output=$(kubeconform -strict -verbose "$file" 2>&1)
6580
if echo "$output" | grep -q "PASS"; then
@@ -80,14 +95,14 @@ jobs:
8095
echo "EOF" >> $GITHUB_OUTPUT
8196
8297
echo "summary=${SUMMARY}" >> $GITHUB_OUTPUT
83-
98+
echo -e "$SUMMARY"
8499
echo -e "$RESULTS"
85100
86101
- name: Set summary for skipped validation
87102
if: steps.detect_changes.outputs.changed == 'false'
88103
id: kubeval_skip
89104
run: |
90-
echo "summary=✅ No Kubernetes YAML files changed. Skipped validation." >> $GITHUB_OUTPUT
105+
echo "summary=✅ No valid Kubernetes YAML files changed. Skipped validation." >> $GITHUB_OUTPUT
91106
echo "results=" >> $GITHUB_OUTPUT
92107
93108
- name: Upload validation results

0 commit comments

Comments
 (0)