Files
gh-secondsky-sap-skills-ski…/templates/github-actions-lint.yml
2025-11-30 08:55:38 +08:00

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