95 lines
2.1 KiB
YAML
95 lines
2.1 KiB
YAML
name: Davidson CI
|
|
|
|
on:
|
|
push:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
quality:
|
|
runs-on: davidson-ci
|
|
|
|
steps:
|
|
- name: Checkout project
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Checkout Davidson CI
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: pauljd/davidson-ci
|
|
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@v4
|
|
|
|
- name: Checkout Davidson CI
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: pauljd/davidson-ci
|
|
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: |
|
|
opencode run \
|
|
--agent davidson-review \
|
|
"Perform a complete Davidson CI review of this repository. Do not modify anything."
|