85 lines
2.2 KiB
YAML
85 lines
2.2 KiB
YAML
# GitHub Actions Workflow for UI5 Linter
|
|
#
|
|
# Place this file in: .github/workflows/ui5-lint.yml
|
|
#
|
|
# Prerequisites:
|
|
# - Package.json must have a 'lint' script that runs ui5lint
|
|
# - UI5 Linter must be installed as a dev dependency
|
|
# - UI5 Linter CLI supports: --quiet, --format (json/html), --details flags
|
|
#
|
|
# Documentation: https://github.com/UI5/linter
|
|
|
|
name: UI5 Lint
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, develop ]
|
|
pull_request:
|
|
branches: [ main, develop ]
|
|
|
|
jobs:
|
|
lint:
|
|
name: Lint UI5 Code
|
|
runs-on: ubuntu-24.04
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v6
|
|
with:
|
|
node-version: '24'
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Run UI5 Linter
|
|
run: npm run lint -- --quiet --format json 2> lint-diagnostics.log | tee lint-results.json
|
|
continue-on-error: true
|
|
|
|
- name: Display Lint Results
|
|
if: always()
|
|
run: cat lint-results.json
|
|
|
|
- name: Upload Lint Results
|
|
if: always()
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: lint-results
|
|
path: lint-results.json
|
|
retention-days: 7
|
|
|
|
- name: Generate HTML Report
|
|
if: always()
|
|
run: npm run lint -- --format html --details 2> lint-diagnostics.log | tee lint-report.html
|
|
continue-on-error: true
|
|
|
|
- name: Upload HTML Report
|
|
if: always()
|
|
uses: actions/upload-artifact@v5
|
|
with:
|
|
name: lint-report
|
|
path: lint-report.html
|
|
retention-days: 7
|
|
|
|
- name: Check Lint Results
|
|
run: |
|
|
if [ ! -f lint-results.json ]; then
|
|
echo "❌ Lint results file not found"
|
|
exit 1
|
|
fi
|
|
if ! jq '[.[].errorCount] | add' lint-results.json > /tmp/error_count 2>/dev/null; then
|
|
echo "❌ Failed to parse lint-results.json"
|
|
exit 1
|
|
fi
|
|
ERROR_COUNT=$(cat /tmp/error_count)
|
|
ERROR_COUNT=${ERROR_COUNT:-0}
|
|
if [ "$ERROR_COUNT" -gt 0 ]; then
|
|
echo "❌ Found $ERROR_COUNT linting errors"
|
|
exit 1
|
|
else
|
|
echo "✅ No linting errors found"
|
|
fi
|