|
1 | 1 | name: Linter
|
2 | 2 |
|
3 | 3 | on:
|
4 |
| - workflow_call: |
5 |
| - inputs: |
6 |
| - install-all: |
7 |
| - description: 'Install dependencies using `install-all`' |
8 |
| - required: false |
9 |
| - type: boolean |
10 |
| - default: false |
11 |
| - use-bun: |
12 |
| - description: 'Use Bun instead of yarn' |
13 |
| - required: false |
14 |
| - type: boolean |
15 |
| - default: false |
16 |
| - generate-keys: |
17 |
| - description: 'Whether to run command for dummy key generation' |
18 |
| - required: false |
19 |
| - type: boolean |
20 |
| - default: false |
21 |
| - log-level: |
22 |
| - description: 'Which log level to use for `super-linter`' |
23 |
| - required: false |
24 |
| - type: string |
25 |
| - default: 'VERBOSE' |
26 |
| - validate-all-codebase: |
27 |
| - description: 'Whether to run validation on all files' |
28 |
| - required: false |
29 |
| - type: boolean |
30 |
| - default: true |
31 |
| - javascript-es-config-file: |
32 |
| - description: 'Path to the ESLint configuration file' |
33 |
| - required: false |
34 |
| - type: string |
35 |
| - default: '/eslint.config.mjs' |
36 |
| - |
37 |
| -env: |
38 |
| - CSS_FILE_NAME: /.stylelintrc.json |
39 |
| - DEFAULT_BRANCH: main |
40 |
| - DOCKERFILE_HADOLINT_FILE_NAME: /.utils/.github/linters/hadolint.yaml |
41 |
| - EDITORCONFIG_FILE_NAME: /.editorconfig |
42 |
| - FILTER_REGEX_EXCLUDE: .*(ati-smarttag.js|skycons.js|.github/workflows/*|docs/ARCHITECTURE/*|traffic/sftp/*|tmp/*|.mp3|.php|.gpg|.drawio|demo.ejs) |
43 |
| - IGNORE_GITIGNORED_FILES: true |
44 |
| - JAVASCRIPT_DEFAULT_STYLE: prettier |
45 |
| - JAVASCRIPT_ES_CONFIG_FILE: ${{ inputs.javascript-es-config-file }} |
46 |
| - JSCPD_CONFIG_FILE: /.utils/.github/linters/jscpd.json |
47 |
| - KUBERNETES_KUBEVAL_OPTIONS: --ignore-missing-schemas |
48 |
| - LINTER_RULES_PATH: / |
49 |
| - # options: ERROR, WARN, NOTICE, VERBOSE, DEBUG or TRACE |
50 |
| - LOG_LEVEL: ${{ inputs.log-level }} |
51 |
| - MARKDOWN_CONFIG_FILE: /.markdownlint.yaml |
52 |
| - NODE_VERSION: 20 |
53 |
| - TERRAFORM_TERRASCAN_CONFIG_FILE: /.utils/.github/linters/terrascan.yaml |
54 |
| - VALIDATE_ALL_CODEBASE: ${{ inputs.validate-all-codebase }} |
55 |
| - VALIDATE_ANSIBLE: false |
56 |
| - VALIDATE_ARM: false |
57 |
| - # VALIDATE_BASH: true |
58 |
| - # VALIDATE_BASH_EXEC: true |
59 |
| - VALIDATE_CPP: false |
60 |
| - VALIDATE_CLANG_FORMAT: false |
61 |
| - VALIDATE_CLOJURE: false |
62 |
| - VALIDATE_CLOUDFORMATION: false |
63 |
| - VALIDATE_COFFEESCRIPT: false |
64 |
| - VALIDATE_CSHARP: false |
65 |
| - VALIDATE_CSS: false |
66 |
| - VALIDATE_DART: false |
67 |
| - # VALIDATE_DOCKERFILE_HADOLINT: true |
68 |
| - # VALIDATE_EDITORCONFIG: true |
69 |
| - # VALIDATE_ENV: true |
70 |
| - VALIDATE_GHERKIN: false |
71 |
| - # VALIDATE_GITHUB_ACTIONS: true |
72 |
| - # VALIDATE_GITLEAKS: true |
73 |
| - VALIDATE_GO: false |
74 |
| - VALIDATE_GOOGLE_JAVA_FORMAT: false |
75 |
| - VALIDATE_GROOVY: false |
76 |
| - # VALIDATE_HTML: true |
77 |
| - VALIDATE_JAVA: false |
78 |
| - # VALIDATE_JAVASCRIPT_ES: true |
79 |
| - # VALIDATE_JAVASCRIPT_STANDARD: true |
80 |
| - # VALIDATE_JSCPD: true |
81 |
| - # VALIDATE_JSON: true |
82 |
| - # VALIDATE_JSX: true |
83 |
| - VALIDATE_KOTLIN: false |
84 |
| - VALIDATE_KOTLIN_ANDROID: false |
85 |
| - # VALIDATE_KUBERNETES_KUBEVAL: true |
86 |
| - VALIDATE_LATEX: false |
87 |
| - VALIDATE_LUA: false |
88 |
| - # VALIDATE_MARKDOWN: true |
89 |
| - # VALIDATE_NATURAL_LANGUAGE: true |
90 |
| - VALIDATE_OPENAPI: false |
91 |
| - VALIDATE_PERL: false |
92 |
| - VALIDATE_PHP: false |
93 |
| - VALIDATE_PHP_BUILTIN: false |
94 |
| - VALIDATE_PHP_PHPCS: false |
95 |
| - VALIDATE_PHP_PHPSTAN: false |
96 |
| - VALIDATE_PHP_PSALM: false |
97 |
| - # VALIDATE_POWERSHELL: true |
98 |
| - VALIDATE_PROTOBUF: false |
99 |
| - VALIDATE_PYTHON: false |
100 |
| - VALIDATE_PYTHON_BLACK: false |
101 |
| - VALIDATE_PYTHON_FLAKE8: false |
102 |
| - VALIDATE_PYTHON_ISORT: false |
103 |
| - VALIDATE_PYTHON_MYPY: false |
104 |
| - VALIDATE_PYTHON_PYLINT: false |
105 |
| - VALIDATE_R: false |
106 |
| - VALIDATE_RAKU: false |
107 |
| - VALIDATE_RUBY: false |
108 |
| - VALIDATE_RUST_2015: false |
109 |
| - VALIDATE_RUST_2018: false |
110 |
| - VALIDATE_RUST_2021: false |
111 |
| - VALIDATE_RUST_CLIPPY: false |
112 |
| - VALIDATE_SCALAFMT: false |
113 |
| - VALIDATE_SHELL_SHFMT: false |
114 |
| - VALIDATE_SNAKEMAKE_LINT: false |
115 |
| - VALIDATE_SNAKEMAKE_SNAKEFMT: false |
116 |
| - VALIDATE_STATES: false |
117 |
| - VALIDATE_SQL: false |
118 |
| - VALIDATE_SQLFLUFF: false |
119 |
| - VALIDATE_TEKTON: false |
120 |
| - # VALIDATE_TERRAFORM_TERRASCAN: true |
121 |
| - # VALIDATE_TERRAFORM_TFLINT: true |
122 |
| - VALIDATE_TERRAGRUNT: false |
123 |
| - # VALIDATE_TSX: true |
124 |
| - # VALIDATE_TYPESCRIPT_ES: true |
125 |
| - # VALIDATE_TYPESCRIPT_STANDARD: true |
126 |
| - # VALIDATE_XML: true |
127 |
| - # VALIDATE_YAML: true |
128 |
| - YAML_CONFIG_FILE: /.utils/.github/linters/yamllint.yaml |
| 4 | + workflow_dispatch: |
| 5 | + pull_request: |
129 | 6 |
|
130 | 7 | jobs:
|
131 |
| - build: |
132 |
| - name: Lint Code Base |
133 |
| - runs-on: ubuntu-latest-4-cores |
134 |
| - timeout-minutes: 90 |
135 |
| - permissions: |
136 |
| - contents: read |
137 |
| - statuses: write |
| 8 | + lint: |
| 9 | + runs-on: ubuntu-latest |
138 | 10 | steps:
|
139 |
| - - name: 👀 Checkout repository |
140 |
| - uses: actions/checkout@v4 |
141 |
| - with: |
142 |
| - persist-credentials: true |
143 |
| - |
144 |
| - - name: 👀 Checkout utils into subfolder |
| 11 | + - name: 👀 Checkout Code |
145 | 12 | uses: actions/checkout@v4
|
146 | 13 | with:
|
147 | 14 | persist-credentials: false
|
148 |
| - repository: swrlab/node-utils |
149 |
| - ref: 'main' |
150 |
| - path: '.utils' |
151 |
| - |
152 |
| - - name: 🏗 Install Node.js |
153 |
| - uses: actions/setup-node@v4 |
154 |
| - with: |
155 |
| - node-version: ${{ env.NODE_VERSION }} |
156 | 15 |
|
157 | 16 | - name: 🛠 Setup Bun
|
158 | 17 | uses: oven-sh/setup-bun@v2
|
159 | 18 | with:
|
160 | 19 | bun-version: latest
|
161 | 20 |
|
162 |
| - - name: 📦 Enable Corepack |
163 |
| - run: corepack enable |
164 |
| - |
165 |
| - - name: 🛠 Use Bun (if `use-bun`) |
166 |
| - if: inputs.use-bun == true |
167 |
| - run: bun install |
168 |
| - |
169 |
| - - name: 📦 Install Dependencies (if `install:all`) |
170 |
| - if: inputs.install-all == true |
171 |
| - run: yarn -v && yarn && yarn install:all |
172 |
| - |
173 |
| - - name: 📦 Install Dependencies (if `install`) |
174 |
| - if: inputs.install-all != true && inputs.use-bun != true |
175 |
| - run: yarn install |
176 |
| - |
177 |
| - - name: 🔑 Generate dummy keys (via yarn) |
178 |
| - if: inputs.generate-keys == true && inputs.use-bun != true |
179 |
| - run: yarn keys:generate |
180 |
| - |
181 |
| - - name: 🔑 Generate dummy keys (via bun) |
182 |
| - if: inputs.generate-keys == true && inputs.use-bun == true |
183 |
| - run: bun run keys:generate |
| 21 | + - name: 📦 Install Dependencies |
| 22 | + run: bun install --frozen-lockfile |
184 | 23 |
|
185 | 24 | - name: 📚 Lint Code Base
|
186 |
| - uses: docker://github/super-linter:v4 |
187 |
| - with: |
188 |
| - context: . |
189 |
| - cache-from: type=gha |
190 |
| - cache-to: type=gha,mode=max |
191 |
| - env: |
192 |
| - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 25 | + run: bun run lint |
| 26 | + |
| 27 | + - name: 📚 Run Tests |
| 28 | + run: bun run test |
0 commit comments