Files
pauljd c5f6c76c02
pauljd/davidson-ci: Davidson CI / quality (push) Successful in 11s
pauljd/davidson-ci: Davidson CI / ai-review (push) Successful in 1m6s
Fix AI review checkout ref indentation
2026-09-08 19:39:48 +01:00

137 lines
3.9 KiB
YAML

name: Davidson CI
on:
push:
permissions:
contents: read
jobs:
quality:
runs-on: davidson-ci
steps:
- name: Checkout project
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- name: Checkout Davidson CI
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
repository: pauljd/davidson-ci
ref: 6a234c80f4facb1fd5d529f58c30348109e3f53a
path: .davidson-ci
- name: Detect project
id: detect
run: .davidson-ci/modules/detect.sh
- name: PHP
id: php
if: always()
run: .davidson-ci/modules/php.sh
- name: JavaScript / TypeScript
id: javascript
if: always()
run: .davidson-ci/modules/javascript.sh
- name: CSS
id: css
if: always()
run: .davidson-ci/modules/css.sh
- name: Security
id: security
if: always()
run: .davidson-ci/modules/security.sh
- name: Davidson CI Report
if: always()
run: .davidson-ci/scripts/report.sh
- name: Final CI status
if: always()
run: |
FAILED=0
[ "${DAVIDSON_PHP_STATUS:-UNKNOWN}" = "FAIL" ] && FAILED=1
[ "${DAVIDSON_JS_STATUS:-UNKNOWN}" = "FAIL" ] && FAILED=1
[ "${DAVIDSON_CSS_STATUS:-UNKNOWN}" = "FAIL" ] && FAILED=1
[ "${DAVIDSON_SECURITY_STATUS:-UNKNOWN}" = "FAIL" ] && FAILED=1
if [ "$FAILED" -eq 1 ]; then
echo "Davidson CI failed"
exit 1
fi
echo "Davidson CI passed"
ai-review:
needs: quality
if: always()
runs-on: davidson-ai
steps:
- name: Checkout project
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
- name: Checkout Davidson CI
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262
with:
repository: pauljd/davidson-ci
ref: 6a234c80f4facb1fd5d529f58c30348109e3f53a
path: .davidson-ci
- name: Prepare OpenCode config
run: |
mkdir -p .opencode
cp -r .davidson-ci/.opencode/* .opencode/
- name: Davidson AI Review
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
set +e
opencode run \
--agent davidson-review \
"Perform a complete Davidson CI review of this repository. Do not modify anything." \
> /tmp/davidson-ai-review.txt 2>&1
AI_EXIT=$?
echo "## 🤖 AI Review" >> "$GITEA_STEP_SUMMARY"
echo >> "$GITEA_STEP_SUMMARY"
if [ "$AI_EXIT" -ne 0 ]; then
echo "❌ **AI reviewer failed to execute**" >> "$GITEA_STEP_SUMMARY"
echo >> "$GITEA_STEP_SUMMARY"
echo "Open the \`ai-review\` job log for details." >> "$GITEA_STEP_SUMMARY"
cat /tmp/davidson-ai-review.txt
exit "$AI_EXIT"
fi
if grep -q "AI REVIEW PASSED - No significant issues found." \
/tmp/davidson-ai-review.txt
then
echo "✅ **PASS**" >> "$GITEA_STEP_SUMMARY"
echo >> "$GITEA_STEP_SUMMARY"
echo "No significant issues were identified by the AI reviewer." \
>> "$GITEA_STEP_SUMMARY"
else
echo "⚠️ **Review findings detected**" >> "$GITEA_STEP_SUMMARY"
echo >> "$GITEA_STEP_SUMMARY"
echo "| Severity | Location | Issue | Recommendation |" \
>> "$GITEA_STEP_SUMMARY"
echo "|---|---|---|---|" >> "$GITEA_STEP_SUMMARY"
grep -E '^(CRITICAL|HIGH|MEDIUM|LOW|INFO)[[:space:]]*\|' \
/tmp/davidson-ai-review.txt \
>> "$GITEA_STEP_SUMMARY" || true
fi
echo
echo "=== Davidson AI Review ==="
cat /tmp/davidson-ai-review.txt