ci(16-05): wire security job into gate aggregator

- gate needs: expanded to include security
- individual needs.security.result check added (requires success, not success-or-skipped)
- security not folded into api/harness for loop — gitleaks always runs so it cannot be skipped
- follows Gitea #31007 individual needs.X.result pattern
This commit is contained in:
Lucas Berger
2026-06-13 08:23:20 -04:00
parent 61b758648f
commit f0f7d8a9f4
+8 -1
View File
@@ -420,7 +420,7 @@ jobs:
gate:
runs-on: ubuntu-latest
needs: [fast-checks, changes, api, harness]
needs: [fast-checks, changes, api, harness, security]
if: always()
steps:
- name: Check all required jobs passed or were skipped
@@ -430,6 +430,13 @@ jobs:
echo "fast-checks: ${{ needs.fast-checks.result }}"
exit 1
fi
# security always runs (gitleaks fires on every PR, D-12) — must be success.
# NOT folded into the success-or-skipped loop below — security can never be skipped.
# NOTE: individual needs.X.result check (not wildcard) due to Gitea #31007.
if [ "${{ needs.security.result }}" != "success" ]; then
echo "security: ${{ needs.security.result }}"
exit 1
fi
# api and harness are conditionally skipped — success OR skipped are both acceptable
# NOTE: uses individual needs.X.result checks (not the wildcard aggregate) due to
# Gitea 1.26.2 bug #31007 where the wildcard expression returns false even when jobs succeed.