Replace the previous frontend workflow with an expanded Build, Test & Push workflow. Adds a quality-check job (runs on push and PRs to main) that sets up Node.js, installs deps, runs lint/type checks, unit tests (ChromeHeadless), production build and runs LHCI. The docker job now depends on the quality-check job and only runs on pushes to main. Added lighthouserc.json and ignored .lighthouseci, relaxed two ESLint rules (@typescript-eslint/no-inferrable-types and no-explicit-any), and updated package.json (and lock) to include LHCI tooling.
47 lines
1.1 KiB
JavaScript
47 lines
1.1 KiB
JavaScript
// @ts-check
|
|
const eslint = require("@eslint/js");
|
|
const { defineConfig } = require("eslint/config");
|
|
const tseslint = require("typescript-eslint");
|
|
const angular = require("angular-eslint");
|
|
|
|
module.exports = defineConfig([
|
|
{
|
|
files: ["**/*.ts"],
|
|
extends: [
|
|
eslint.configs.recommended,
|
|
tseslint.configs.recommended,
|
|
tseslint.configs.stylistic,
|
|
angular.configs.tsRecommended,
|
|
],
|
|
processor: angular.processInlineTemplates,
|
|
rules: {
|
|
"@typescript-eslint/no-inferrable-types": "off",
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@angular-eslint/directive-selector": [
|
|
"error",
|
|
{
|
|
type: "attribute",
|
|
prefix: "app",
|
|
style: "camelCase",
|
|
},
|
|
],
|
|
"@angular-eslint/component-selector": [
|
|
"error",
|
|
{
|
|
type: "element",
|
|
prefix: "app",
|
|
style: "kebab-case",
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
files: ["**/*.html"],
|
|
extends: [
|
|
angular.configs.templateRecommended,
|
|
angular.configs.templateAccessibility,
|
|
],
|
|
rules: {},
|
|
}
|
|
]);
|