Skip to content

Commit 8557c04

Browse files
committed
Install referenced schema in "Check npm" workflow
The "Check npm" GitHub Actions workflow validates the repository's `package.json` npm manifest file against its JSON schema to catch any problems with its data format. In order to avoid duplication of content, JSON schemas may reference other schemas via the `$ref` keyword. The `package.json` schema was recently updated to share resources with the npm-badges configuration schema, which caused the validation to start failing: schema /home/runner/work/_temp/json-schema/package-json-schema.json is invalid error: can't resolve reference https://json.schemastore.org/npm-badges.json from id # The solution is to configure the workflow to download that schema as well and also to provide its path to the avj-cli validator via an `-r` flag.
1 parent 880b053 commit 8557c04

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

Taskfile.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,10 @@ tasks:
655655
JSCPD_SCHEMA_URL: https://json.schemastore.org/jscpd.json
656656
JSCPD_SCHEMA_PATH:
657657
sh: task utility:mktemp-file TEMPLATE="jscpd-schema-XXXXXXXXXX.json"
658+
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/npm-badges.json
659+
NPM_BADGES_SCHEMA_URL: https://json.schemastore.org/npm-badges.json
660+
NPM_BADGES_SCHEMA_PATH:
661+
sh: task utility:mktemp-file TEMPLATE="npm-badges-schema-XXXXXXXXXX.json"
658662
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/prettierrc.json
659663
PRETTIERRC_SCHEMA_URL: https://json.schemastore.org/prettierrc.json
660664
PRETTIERRC_SCHEMA_PATH:
@@ -677,6 +681,7 @@ tasks:
677681
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
678682
- wget --quiet --output-document="{{.ESLINTRC_SCHEMA_PATH}}" {{.ESLINTRC_SCHEMA_URL}}
679683
- wget --quiet --output-document="{{.JSCPD_SCHEMA_PATH}}" {{.JSCPD_SCHEMA_URL}}
684+
- wget --quiet --output-document="{{.NPM_BADGES_SCHEMA_PATH}}" {{.NPM_BADGES_SCHEMA_URL}}
680685
- wget --quiet --output-document="{{.PRETTIERRC_SCHEMA_PATH}}" {{.PRETTIERRC_SCHEMA_URL}}
681686
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
682687
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
@@ -688,6 +693,7 @@ tasks:
688693
-r "{{.AVA_SCHEMA_PATH}}" \
689694
-r "{{.ESLINTRC_SCHEMA_PATH}}" \
690695
-r "{{.JSCPD_SCHEMA_PATH}}" \
696+
-r "{{.NPM_BADGES_SCHEMA_PATH}}" \
691697
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
692698
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
693699
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ tasks:
2626
JSCPD_SCHEMA_URL: https://json.schemastore.org/jscpd.json
2727
JSCPD_SCHEMA_PATH:
2828
sh: task utility:mktemp-file TEMPLATE="jscpd-schema-XXXXXXXXXX.json"
29+
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/npm-badges.json
30+
NPM_BADGES_SCHEMA_URL: https://json.schemastore.org/npm-badges.json
31+
NPM_BADGES_SCHEMA_PATH:
32+
sh: task utility:mktemp-file TEMPLATE="npm-badges-schema-XXXXXXXXXX.json"
2933
# Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/prettierrc.json
3034
PRETTIERRC_SCHEMA_URL: https://json.schemastore.org/prettierrc.json
3135
PRETTIERRC_SCHEMA_PATH:
@@ -48,6 +52,7 @@ tasks:
4852
- wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}}
4953
- wget --quiet --output-document="{{.ESLINTRC_SCHEMA_PATH}}" {{.ESLINTRC_SCHEMA_URL}}
5054
- wget --quiet --output-document="{{.JSCPD_SCHEMA_PATH}}" {{.JSCPD_SCHEMA_URL}}
55+
- wget --quiet --output-document="{{.NPM_BADGES_SCHEMA_PATH}}" {{.NPM_BADGES_SCHEMA_URL}}
5156
- wget --quiet --output-document="{{.PRETTIERRC_SCHEMA_PATH}}" {{.PRETTIERRC_SCHEMA_URL}}
5257
- wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}}
5358
- wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}}
@@ -59,6 +64,7 @@ tasks:
5964
-r "{{.AVA_SCHEMA_PATH}}" \
6065
-r "{{.ESLINTRC_SCHEMA_PATH}}" \
6166
-r "{{.JSCPD_SCHEMA_PATH}}" \
67+
-r "{{.NPM_BADGES_SCHEMA_PATH}}" \
6268
-r "{{.PRETTIERRC_SCHEMA_PATH}}" \
6369
-r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \
6470
-r "{{.STYLELINTRC_SCHEMA_PATH}}" \

0 commit comments

Comments
 (0)