Skip to content

Commit fb8f8ac

Browse files
authored
Merge pull request #245 from per1234/fix-npx
Force use of unmanaged ajv-cli version as required
2 parents 438137e + 06ebd8d commit fb8f8ac

File tree

3 files changed

+51
-12
lines changed

3 files changed

+51
-12
lines changed

Taskfile.yml

+29-8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
version: "3"
22

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+
37
tasks:
48
check:
59
desc: Check for problems with the project
@@ -110,20 +114,23 @@ tasks:
110114
dependabot:validate:
111115
desc: Validate Dependabot configuration files against their JSON schema
112116
vars:
113-
# Last version with support for draft-04, used by Dependabot schema
114-
AJV_CLI_VERSION: 3.3.0
115117
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/dependabot-2.0.json
116118
SCHEMA_URL: https://json.schemastore.org/dependabot-2.0
117119
SCHEMA_PATH:
118120
sh: task utility:mktemp-file TEMPLATE="dependabot-schema-XXXXXXXXXX.json"
119121
DATA_PATH: "**/dependabot.yml"
122+
PROJECT_FOLDER:
123+
sh: pwd
124+
WORKING_FOLDER:
125+
sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
120126
cmds:
121127
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
122128
- |
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 \
124131
--all-errors \
125132
-s "{{.SCHEMA_PATH}}" \
126-
-d "{{.DATA_PATH}}"
133+
-d "{{.PROJECT_FOLDER}}/{{.DATA_PATH}}"
127134
128135
dependabot:sync:
129136
desc: Sync workflow duplicates for dependabot checks
@@ -342,8 +349,6 @@ tasks:
342349
npm:validate:
343350
desc: Validate npm configuration files against their JSON schema
344351
vars:
345-
# Last version with support for draft-04, used by the `package.json` schema
346-
AJV_CLI_VERSION: 3.3.0
347352
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json
348353
SCHEMA_URL: https://json.schemastore.org/package.json
349354
SCHEMA_PATH:
@@ -373,6 +378,10 @@ tasks:
373378
STYLELINTRC_SCHEMA_PATH:
374379
sh: task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json"
375380
INSTANCE_PATH: "**/package.json"
381+
PROJECT_FOLDER:
382+
sh: pwd
383+
WORKING_FOLDER:
384+
sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
376385
cmds:
377386
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
378387
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
@@ -382,7 +391,8 @@ tasks:
382391
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
383392
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
384393
- |
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 \
386396
--all-errors \
387397
-s "{{.SCHEMA_PATH}}" \
388398
-r "{{.AVA_SCHEMA_PATH}}" \
@@ -391,7 +401,7 @@ tasks:
391401
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
392402
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
393403
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
394-
-d "{{.INSTANCE_PATH}}"
404+
-d "{{.PROJECT_FOLDER}}/{{.INSTANCE_PATH}}"
395405
396406
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml
397407
poetry:install-deps:
@@ -514,6 +524,17 @@ tasks:
514524
vars:
515525
RAW_PATH: "{{.RAW_PATH}}"
516526

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+
517538
# Print a normalized version of the path passed via the RAW_PATH variable to stdout
518539
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
519540
utility:normalize-path:

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

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
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+
48
tasks:
59
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-npm-task/Taskfile.yml
610
npm:validate:
711
desc: Validate npm configuration files against their JSON schema
812
vars:
9-
# Last version with support for draft-04, used by the `package.json` schema
10-
AJV_CLI_VERSION: 3.3.0
1113
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json
1214
SCHEMA_URL: https://json.schemastore.org/package.json
1315
SCHEMA_PATH:
@@ -37,6 +39,10 @@ tasks:
3739
STYLELINTRC_SCHEMA_PATH:
3840
sh: task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json"
3941
INSTANCE_PATH: "**/package.json"
42+
PROJECT_FOLDER:
43+
sh: pwd
44+
WORKING_FOLDER:
45+
sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX"
4046
cmds:
4147
- wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}}
4248
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
@@ -46,7 +52,8 @@ tasks:
4652
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
4753
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
4854
- |
49-
npx ajv-cli@{{.AJV_CLI_VERSION}} validate \
55+
cd "{{.WORKING_FOLDER}}" # Workaround for https://github.com/npm/cli/issues/3210
56+
npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \
5057
--all-errors \
5158
-s "{{.SCHEMA_PATH}}" \
5259
-r "{{.AVA_SCHEMA_PATH}}" \
@@ -55,4 +62,4 @@ tasks:
5562
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
5663
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
5764
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \
58-
-d "{{.INSTANCE_PATH}}"
65+
-d "{{.PROJECT_FOLDER}}/{{.INSTANCE_PATH}}"

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

+11
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@ 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+
1627
# Print a normalized version of the path passed via the RAW_PATH variable to stdout
1728
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml
1829
utility:normalize-path:

0 commit comments

Comments
 (0)