60
60
RESULTS=""
61
61
PASS_COUNT=0
62
62
FAIL_COUNT=0
63
- for file in $(cat changed_yamls.txt) ; do
63
+ while IFS= read -r file ; do
64
64
output=$(kubeconform -strict -verbose "$file" 2>&1)
65
65
if echo "$output" | grep -q "PASS"; then
66
66
emoji="✅"
70
70
FAIL_COUNT=$((FAIL_COUNT + 1))
71
71
fi
72
72
RESULTS="${RESULTS}${emoji} \`${file}\`\n${output}\n\n"
73
- done
73
+ done < changed_yamls.txt
74
74
75
75
SUMMARY="✅ Passed: ${PASS_COUNT} | ❌ Failed: ${FAIL_COUNT}"
76
76
echo "$RESULTS" > validation_output.txt
@@ -81,13 +81,22 @@ jobs:
81
81
82
82
echo "summary=${SUMMARY}" >> $GITHUB_OUTPUT
83
83
84
+ echo -e "$RESULTS"
85
+
84
86
- name : Set summary for skipped validation
85
87
if : steps.detect_changes.outputs.changed == 'false'
86
88
id : kubeval_skip
87
89
run : |
88
90
echo "summary=✅ No Kubernetes YAML files changed. Skipped validation." >> $GITHUB_OUTPUT
89
91
echo "results=" >> $GITHUB_OUTPUT
90
92
93
+ - name : Upload validation results
94
+ if : always()
95
+ uses : actions/upload-artifact@v3
96
+ with :
97
+ name : validation-results
98
+ path : validation_output.txt
99
+
91
100
- name : Fail if any errors
92
101
if : steps.detect_changes.outputs.changed == 'true'
93
102
run : |
@@ -101,7 +110,11 @@ jobs:
101
110
needs : [fetch_commit_info, validate_kubeconform]
102
111
if : always()
103
112
steps :
113
+ - name : Checkout code
114
+ uses : actions/checkout@v3
115
+
104
116
- name : Comment on commit
117
+ working-directory : ${{ github.workspace }}
105
118
env :
106
119
GITHUB_TOKEN : ${{ secrets.GH_TOKEN }}
107
120
SHA : ${{ needs.fetch_commit_info.outputs.sha }}
0 commit comments