@@ -241,7 +241,7 @@ jobs:
241241 notify :
242242 name : Discord Notification
243243 runs-on : ubuntu-24.04
244- needs : [scanning, actionlint, lint, lint-summary ]
244+ needs : [scanning, actionlint, lint]
245245 if : always()
246246 steps :
247247 - name : Configure 1Password Service Account
@@ -258,16 +258,31 @@ jobs:
258258 DISCORD_WEBHOOK : ${{ inputs.webhook-url }}
259259 DISCORD_USER_ID : ${{ inputs.discord-user-id != '' && inputs.discord-user-id || 'SKIP' }}
260260
261+ - name : Determine overall lint status
262+ id : lint-status
263+ run : |
264+ # Derive overall status from individual job results
265+ # Success requires: scanning passed/skipped AND actionlint passed AND lint passed
266+ SCANNING="${{ needs.scanning.result }}"
267+ ACTIONLINT="${{ needs.actionlint.result }}"
268+ LINT="${{ needs.lint.result }}"
269+
270+ if [[ ("$SCANNING" == "success" || "$SCANNING" == "skipped") && "$ACTIONLINT" == "success" && "$LINT" == "success" ]]; then
271+ echo "result=success" >> "$GITHUB_OUTPUT"
272+ else
273+ echo "result=failure" >> "$GITHUB_OUTPUT"
274+ fi
275+
261276 - name : Send Discord notification
262277 uses : sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0
263- if : ${{ needs .lint-summary. result == 'failure' || (needs .lint-summary .result == 'success' && github.event_name != 'pull_request') }}
278+ if : ${{ steps .lint-status.outputs. result == 'failure' || (steps .lint-status.outputs .result == 'success' && github.event_name != 'pull_request') }}
264279 with :
265280 webhook : ${{ steps.op-load-discord.outputs.DISCORD_WEBHOOK }}
266- content : ${{ needs .lint-summary .result != 'success' && inputs.discord-user-id != '' && steps.op-load-discord.outputs.DISCORD_USER_ID != 'SKIP' && format('<@{0}>', steps.op-load-discord.outputs.DISCORD_USER_ID) || '' }}
267- status : ${{ needs .lint-summary .result == 'success' && 'success' || 'failure' }}
268- title : " 🔍 ${{ inputs.repo-name }} • ${{ needs .lint-summary .result == 'success' && 'Validation Passed' || 'Validation Failed' }}"
281+ content : ${{ steps .lint-status.outputs .result != 'success' && inputs.discord-user-id != '' && steps.op-load-discord.outputs.DISCORD_USER_ID != 'SKIP' && format('<@{0}>', steps.op-load-discord.outputs.DISCORD_USER_ID) || '' }}
282+ status : ${{ steps .lint-status.outputs .result == 'success' && 'success' || 'failure' }}
283+ title : " 🔍 ${{ inputs.repo-name }} • ${{ steps .lint-status.outputs .result == 'success' && 'Validation Passed' || 'Validation Failed' }}"
269284 description : |
270- ${{ needs .lint-summary .result == 'success' && '✅ **All validation checks passed**' || '❌ **Validation issues detected**' }}
285+ ${{ steps .lint-status.outputs .result == 'success' && '✅ **All validation checks passed**' || '❌ **Validation issues detected**' }}
271286
272287 **🔒 Security Scan:** ${{ needs.scanning.result == 'success' && '✅ No secrets detected' || needs.scanning.result == 'skipped' && '⏭️ Skipped (PR/manual)' || '❌ Issues found' }}
273288 **⚙️ Workflow Validation:** ${{ needs.actionlint.result == 'success' && '✅ All workflows valid' || '❌ Issues detected' }}
@@ -298,8 +313,8 @@ jobs:
298313 • Remove exposed secrets before proceeding
299314 • **This blocks deployment until resolved**' || '' }}
300315
301- ${{ needs .lint-summary .result == 'success' && '🚀 **Ready for deployment**' || '⚠️ **Deployment blocked until issues resolved**' }}
302- color : ${{ needs .lint-summary .result == 'success' && 0x28a745 || needs.scanning.result == 'failure' && 0xdc3545 || 0xfd7e14 }}
316+ ${{ steps .lint-status.outputs .result == 'success' && '🚀 **Ready for deployment**' || '⚠️ **Deployment blocked until issues resolved**' }}
317+ color : ${{ steps .lint-status.outputs .result == 'success' && 0x28a745 || needs.scanning.result == 'failure' && 0xdc3545 || 0xfd7e14 }}
303318 username : " Compose Lint"
304319 avatar_url : " https://cdn-icons-png.flaticon.com/512/2103/2103633.png"
305320
0 commit comments