feat(ci): add lint pipeline for PHP, CSS and HTML (#44)
This commit is contained in:
66
.gitea/workflows/lint.yml
Normal file
66
.gitea/workflows/lint.yml
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
name: Lint
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lint-php:
|
||||||
|
name: PHP Syntax Check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install PHP
|
||||||
|
run: |
|
||||||
|
apt-get update -qq && apt-get install -y -qq php-cli > /dev/null 2>&1
|
||||||
|
|
||||||
|
- name: PHP Lint
|
||||||
|
run: |
|
||||||
|
errors=0
|
||||||
|
while IFS= read -r file; do
|
||||||
|
if ! php -l "$file" > /dev/null 2>&1; then
|
||||||
|
echo "❌ Syntax error in $file"
|
||||||
|
php -l "$file"
|
||||||
|
errors=1
|
||||||
|
fi
|
||||||
|
done < <(find . -name "*.php" -not -path "./vendor/*")
|
||||||
|
if [ "$errors" -eq 1 ]; then
|
||||||
|
echo "::error::PHP lint check failed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "✅ All PHP files pass syntax check"
|
||||||
|
|
||||||
|
lint-css:
|
||||||
|
name: CSS Lint (stylelint)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node.js & stylelint
|
||||||
|
run: |
|
||||||
|
apt-get update -qq && apt-get install -y -qq npm nodejs > /dev/null 2>&1
|
||||||
|
npm install -g stylelint stylelint-config-standard stylelint-prettier > /dev/null 2>&1
|
||||||
|
|
||||||
|
- name: CSS Lint
|
||||||
|
run: |
|
||||||
|
npx stylelint "**/*.css" --config .stylelintrc.json --allow-empty-input
|
||||||
|
echo "✅ All CSS files pass lint"
|
||||||
|
|
||||||
|
lint-html:
|
||||||
|
name: HTML Lint (htmlhint)
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node.js & htmlhint
|
||||||
|
run: |
|
||||||
|
apt-get update -qq && apt-get install -y -qq npm nodejs > /dev/null 2>&1
|
||||||
|
npm install -g htmlhint > /dev/null 2>&1
|
||||||
|
|
||||||
|
- name: HTML Lint
|
||||||
|
run: |
|
||||||
|
npx htmlhint "**/*.html" --config .htmlhintrc
|
||||||
|
echo "✅ All HTML files pass lint"
|
||||||
Reference in New Issue
Block a user