From a0d89a93a629b2d32afcffb4ef2f7debe78138ce Mon Sep 17 00:00:00 2001 From: Claw Date: Tue, 19 May 2026 13:53:46 +0000 Subject: [PATCH] feat(ci): add lint pipeline for PHP, CSS and HTML (#44) --- .gitea/workflows/lint.yml | 66 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .gitea/workflows/lint.yml diff --git a/.gitea/workflows/lint.yml b/.gitea/workflows/lint.yml new file mode 100644 index 0000000..c4c2481 --- /dev/null +++ b/.gitea/workflows/lint.yml @@ -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"