name: CodeQL on: push: branches: [main] pull_request: jobs: lint-debian: runs-on: debian-trixie steps: - uses: actions/checkout@v6 - name: Install Linters run: npm install -g htmlhint stylelint stylelint-config-standard eslint - name: HTML run: htmlhint "**/*.html" --ignore "assets/**" - name: CSS run: | echo '{ "ignoreFiles": [ "assets/**/*.css", "users/auth/**/*.css" ], "extends": "stylelint-config-standard", "rules": { "no-duplicate-selectors": null, "no-descending-specificity": null, "declaration-block-no-shorthand-property-overrides": null, "font-family-no-duplicate-names": null, "selector-class-pattern": null, "selector-id-pattern": null, "keyframes-name-pattern": null, "declaration-block-single-line-max-declarations": null, "property-no-unknown": null, "declaration-property-value-no-unknown": null } }' > .stylelintrc.json stylelint "**/*.css" --allow-empty-input --fix || stylelint "**/*.css" --allow-empty-input - name: JS run: | echo "export default [ { languageOptions: { globals: { window: 'readonly', document: 'readonly', navigator: 'readonly', location: 'readonly', history: 'readonly', localStorage: 'readonly', fetch: 'readonly' } }, rules: { 'semi': ['error', 'always'], 'no-console': 'off' } } ];" > eslint.config.mjs npx eslint . --fix || npx eslint .