Skip to content

Commit 0925d04

Browse files
owineclaude
andcommitted
perf(lint): run lint-summary and notify jobs in parallel
Remove dependency of notify job on lint-summary by deriving overall lint status directly from upstream job results. This allows both jobs to run concurrently after the validation jobs complete. Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent 2b74510 commit 0925d04

File tree

1 file changed

+23
-8
lines changed

1 file changed

+23
-8
lines changed

.github/workflows/compose-lint.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)