Skip to content

Commit 7b07ace

Browse files
authored
Merge pull request #589 from per1234/npm-validate-task-ajv-version
Use project version of ajv-cli in all validation tasks
2 parents e752f27 + d2ec2bf commit 7b07ace

File tree

3 files changed

+69
-78
lines changed

3 files changed

+69
-78
lines changed

Taskfile.yml

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ vars:
99
CLANG_FORMAT_GOLDEN_TEST_DATA_FOLDER: "{{.CLANG_FORMAT_TEST_DATA_FOLDER}}/golden"
1010
# See: https://github.com/arduino/arduino-ide/blob/main/arduino-ide-extension/package.json
1111
DEFAULT_CLANG_FORMAT_VERSION: 14.0.0
12-
# Last version of ajv-cli with support for the JSON schema "Draft 4" specification
13-
SCHEMA_DRAFT_4_AJV_CLI_VERSION: 3.3.0
1412

1513
tasks:
1614
check:
@@ -359,6 +357,8 @@ tasks:
359357
360358
dependabot:validate:
361359
desc: Validate Dependabot configuration files against their JSON schema
360+
deps:
361+
- task: npm:install-deps
362362
vars:
363363
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/dependabot-2.0.json
364364
SCHEMA_URL: https://json.schemastore.org/dependabot-2.0
@@ -372,25 +372,29 @@ tasks:
372372
DATA_PATH: ".github/dependabot.yml"
373373
# The asset Dependabot configuration files.
374374
ASSETS_DATA_PATH: "workflow-templates/assets/dependabot/**/dependabot.yml"
375-
WORKING_FOLDER:
376-
sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
377375
cmds:
378376
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
379377
- wget --quiet --output-document="{{.BASE_SCHEMA_PATH}}" {{.BASE_SCHEMA_URL}}
380378
- |
381-
npx ajv-cli validate \
382-
--all-errors \
383-
--strict=false \
384-
-s "{{.SCHEMA_PATH}}" \
385-
-r "{{.BASE_SCHEMA_PATH}}" \
386-
-d "{{.DATA_PATH}}"
379+
npx \
380+
--package=ajv-cli \
381+
--package=ajv-formats \
382+
ajv validate \
383+
--all-errors \
384+
--strict=false \
385+
-s "{{.SCHEMA_PATH}}" \
386+
-r "{{.BASE_SCHEMA_PATH}}" \
387+
-d "{{.DATA_PATH}}"
387388
- |
388-
npx ajv-cli validate \
389-
--all-errors \
390-
--strict=false \
391-
-s "{{.SCHEMA_PATH}}" \
392-
-r "{{.BASE_SCHEMA_PATH}}" \
393-
-d "{{.ASSETS_DATA_PATH}}"
389+
npx \
390+
--package=ajv-cli \
391+
--package=ajv-formats \
392+
ajv validate \
393+
--all-errors \
394+
--strict=false \
395+
-s "{{.SCHEMA_PATH}}" \
396+
-r "{{.BASE_SCHEMA_PATH}}" \
397+
-d "{{.ASSETS_DATA_PATH}}"
394398
395399
docs:generate:
396400
desc: Create all generated documentation content
@@ -399,6 +403,8 @@ tasks:
399403

400404
eslint:validate:
401405
desc: Validate ESLint configuration file against its JSON schema
406+
deps:
407+
- task: npm:install-deps
402408
vars:
403409
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/eslintrc.json
404410
SCHEMA_URL: https://json.schemastore.org/eslintrc.json
@@ -411,20 +417,19 @@ tasks:
411417
DATA_PATH: workflow-templates/assets/check-javascript/.eslintrc.yml
412418
# ajv-cli identifies YAML-format data files by their file extension, so renaming is required:
413419
# https://github.com/ajv-validator/ajv-cli/issues/117
414-
PROJECT_FOLDER:
415-
sh: pwd
416-
WORKING_FOLDER:
417-
sh: task utility:mktemp-folder TEMPLATE="eslintrc-validate-XXXXXXXXXX"
418420
cmds:
419421
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
420422
- wget --quiet --output-document="{{.PARTIAL_ESLINT_PLUGINS_PATH}}" {{.PARTIAL_ESLINT_PLUGINS_SCHEMA_URL}}
421423
- |
422-
cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210
423-
npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \
424-
--all-errors \
425-
-s "{{.SCHEMA_PATH}}" \
426-
-r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \
427-
-d "{{.PROJECT_FOLDER}}/{{.DATA_PATH}}"
424+
npx \
425+
--package=ajv-cli \
426+
--package=ajv-formats \
427+
ajv validate \
428+
--all-errors \
429+
--strict=false \
430+
-s "{{.SCHEMA_PATH}}" \
431+
-r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \
432+
-d "{{.DATA_PATH}}"
428433
429434
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-files-task/Taskfile.yml
430435
general:check-filenames:
@@ -729,6 +734,8 @@ tasks:
729734
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-npm-task/Taskfile.yml
730735
npm:validate:
731736
desc: Validate npm configuration files against their JSON schema
737+
deps:
738+
- task: npm:install-deps
732739
vars:
733740
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json
734741
SCHEMA_URL: https://json.schemastore.org/package.json
@@ -772,10 +779,6 @@ tasks:
772779
sh: task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json"
773780
INSTANCE_PATH: >-
774781
{{default "." .PROJECT_PATH}}/package.json
775-
PROJECT_FOLDER:
776-
sh: pwd
777-
WORKING_FOLDER:
778-
sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
779782
cmds:
780783
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
781784
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
@@ -788,20 +791,23 @@ tasks:
788791
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
789792
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
790793
- |
791-
cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210
792-
npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \
793-
--all-errors \
794-
-s "{{.SCHEMA_PATH}}" \
795-
-r "{{.AVA_SCHEMA_PATH}}" \
796-
-r "{{.BASE_SCHEMA_PATH}}" \
797-
-r "{{.ESLINTRC_SCHEMA_PATH}}" \
798-
-r "{{.JSCPD_SCHEMA_PATH}}" \
799-
-r "{{.NPM_BADGES_SCHEMA_PATH}}" \
800-
-r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \
801-
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
802-
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
803-
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
804-
-d "{{.PROJECT_FOLDER}}/{{.INSTANCE_PATH}}"
794+
npx \
795+
--package=ajv-cli \
796+
--package=ajv-formats \
797+
ajv validate \
798+
--all-errors \
799+
--strict=false \
800+
-s "{{.SCHEMA_PATH}}" \
801+
-r "{{.AVA_SCHEMA_PATH}}" \
802+
-r "{{.BASE_SCHEMA_PATH}}" \
803+
-r "{{.ESLINTRC_SCHEMA_PATH}}" \
804+
-r "{{.JSCPD_SCHEMA_PATH}}" \
805+
-r "{{.NPM_BADGES_SCHEMA_PATH}}" \
806+
-r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \
807+
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
808+
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
809+
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
810+
-d "{{.INSTANCE_PATH}}"
805811
806812
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml
807813
poetry:install-deps:
@@ -907,7 +913,6 @@ tasks:
907913
RAW_PATH: "{{.RAW_PATH}}"
908914

909915
# Make a temporary folder named according to the passed TEMPLATE variable and print the path passed to stdout
910-
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
911916
utility:mktemp-folder:
912917
vars:
913918
RAW_PATH:

workflow-templates/assets/check-npm-task/Taskfile.yml

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
# See: https://taskfile.dev/#/usage
22
version: "3"
33

4-
vars:
5-
# Last version of ajv-cli with support for the JSON schema "Draft 4" specification
6-
SCHEMA_DRAFT_4_AJV_CLI_VERSION: 3.3.0
7-
84
tasks:
95
# Parameter variables:
106
# - PROJECT_PATH: path of the npm-managed project. Default value: "./"
117
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-npm-task/Taskfile.yml
128
npm:validate:
139
desc: Validate npm configuration files against their JSON schema
10+
deps:
11+
- task: npm:install-deps
1412
vars:
1513
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json
1614
SCHEMA_URL: https://json.schemastore.org/package.json
@@ -54,10 +52,6 @@ tasks:
5452
sh: task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json"
5553
INSTANCE_PATH: >-
5654
{{default "." .PROJECT_PATH}}/package.json
57-
PROJECT_FOLDER:
58-
sh: pwd
59-
WORKING_FOLDER:
60-
sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
6155
cmds:
6256
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
6357
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
@@ -70,17 +64,20 @@ tasks:
7064
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
7165
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
7266
- |
73-
cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210
74-
npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \
75-
--all-errors \
76-
-s "{{.SCHEMA_PATH}}" \
77-
-r "{{.AVA_SCHEMA_PATH}}" \
78-
-r "{{.BASE_SCHEMA_PATH}}" \
79-
-r "{{.ESLINTRC_SCHEMA_PATH}}" \
80-
-r "{{.JSCPD_SCHEMA_PATH}}" \
81-
-r "{{.NPM_BADGES_SCHEMA_PATH}}" \
82-
-r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \
83-
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
84-
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
85-
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
86-
-d "{{.PROJECT_FOLDER}}/{{.INSTANCE_PATH}}"
67+
npx \
68+
--package=ajv-cli \
69+
--package=ajv-formats \
70+
ajv validate \
71+
--all-errors \
72+
--strict=false \
73+
-s "{{.SCHEMA_PATH}}" \
74+
-r "{{.AVA_SCHEMA_PATH}}" \
75+
-r "{{.BASE_SCHEMA_PATH}}" \
76+
-r "{{.ESLINTRC_SCHEMA_PATH}}" \
77+
-r "{{.JSCPD_SCHEMA_PATH}}" \
78+
-r "{{.NPM_BADGES_SCHEMA_PATH}}" \
79+
-r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \
80+
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
81+
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
82+
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
83+
-d "{{.INSTANCE_PATH}}"

workflow-templates/assets/windows-task/Taskfile.yml

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,6 @@ tasks:
1313
vars:
1414
RAW_PATH: "{{.RAW_PATH}}"
1515

16-
# Make a temporary folder named according to the passed TEMPLATE variable and print the path passed to stdout
17-
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
18-
utility:mktemp-folder:
19-
vars:
20-
RAW_PATH:
21-
sh: mktemp --directory --tmpdir "{{.TEMPLATE}}"
22-
cmds:
23-
- task: utility:normalize-path
24-
vars:
25-
RAW_PATH: "{{.RAW_PATH}}"
26-
2716
# Print a normalized version of the path passed via the RAW_PATH variable to stdout
2817
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
2918
utility:normalize-path:

0 commit comments

Comments
 (0)