1
1
version : " 3"
2
2
3
+ vars :
4
+ # Last version of ajv-cli with support for the JSON schema "Draft 4" specification
5
+ SCHEMA_DRAFT_4_AJV_CLI_VERSION : 3.3.0
6
+
3
7
tasks :
4
8
check :
5
9
desc : Check for problems with the project
@@ -110,20 +114,23 @@ tasks:
110
114
dependabot:validate :
111
115
desc : Validate Dependabot configuration files against their JSON schema
112
116
vars :
113
- # Last version with support for draft-04, used by Dependabot schema
114
- AJV_CLI_VERSION : 3.3.0
115
117
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/dependabot-2.0.json
116
118
SCHEMA_URL : https://json.schemastore.org/dependabot-2.0
117
119
SCHEMA_PATH :
118
120
sh : task utility:mktemp-file TEMPLATE="dependabot-schema-XXXXXXXXXX.json"
119
121
DATA_PATH : " **/dependabot.yml"
122
+ PROJECT_FOLDER :
123
+ sh : pwd
124
+ WORKING_FOLDER :
125
+ sh : task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
120
126
cmds :
121
127
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
122
128
- |
123
- npx ajv-cli@{{.AJV_CLI_VERSION}} validate \
129
+ cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210
130
+ npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \
124
131
--all-errors \
125
132
-s "{{.SCHEMA_PATH}}" \
126
- -d "{{.DATA_PATH}}"
133
+ -d "{{.PROJECT_FOLDER}}/{{. DATA_PATH}}"
127
134
128
135
dependabot:sync :
129
136
desc : Sync workflow duplicates for dependabot checks
@@ -342,8 +349,6 @@ tasks:
342
349
npm:validate :
343
350
desc : Validate npm configuration files against their JSON schema
344
351
vars :
345
- # Last version with support for draft-04, used by the `package.json` schema
346
- AJV_CLI_VERSION : 3.3.0
347
352
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json
348
353
SCHEMA_URL : https://json.schemastore.org/package.json
349
354
SCHEMA_PATH :
@@ -373,6 +378,10 @@ tasks:
373
378
STYLELINTRC_SCHEMA_PATH :
374
379
sh : task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json"
375
380
INSTANCE_PATH : " **/package.json"
381
+ PROJECT_FOLDER :
382
+ sh : pwd
383
+ WORKING_FOLDER :
384
+ sh : task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
376
385
cmds :
377
386
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
378
387
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
@@ -382,7 +391,8 @@ tasks:
382
391
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
383
392
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
384
393
- |
385
- npx ajv-cli@{{.AJV_CLI_VERSION}} validate \
394
+ cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210
395
+ npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \
386
396
--all-errors \
387
397
-s "{{.SCHEMA_PATH}}" \
388
398
-r "{{.AVA_SCHEMA_PATH}}" \
@@ -391,7 +401,7 @@ tasks:
391
401
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
392
402
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
393
403
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
394
- -d "{{.INSTANCE_PATH}}"
404
+ -d "{{.PROJECT_FOLDER}}/{{. INSTANCE_PATH}}"
395
405
396
406
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml
397
407
poetry:install-deps :
@@ -514,6 +524,17 @@ tasks:
514
524
vars :
515
525
RAW_PATH : " {{.RAW_PATH}}"
516
526
527
+ # Make a temporary folder named according to the passed TEMPLATE variable and print the path passed to stdout
528
+ # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
529
+ utility:mktemp-folder :
530
+ vars :
531
+ RAW_PATH :
532
+ sh : mktemp --directory --tmpdir "{{.TEMPLATE}}"
533
+ cmds :
534
+ - task : utility:normalize-path
535
+ vars :
536
+ RAW_PATH : " {{.RAW_PATH}}"
537
+
517
538
# Print a normalized version of the path passed via the RAW_PATH variable to stdout
518
539
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
519
540
utility:normalize-path :
0 commit comments