|  | 
| 18 | 18 |       || \ | 
| 19 | 19 |       echo '"ERROR: Unable to discover Go packages"' \ | 
| 20 | 20 |     ) | 
|  | 21 | +  # Last version of ajv-cli with support for the JSON schema "Draft 4" specification | 
|  | 22 | +  SCHEMA_DRAFT_4_AJV_CLI_VERSION: 3.3.0 | 
| 21 | 23 |   # build vars | 
| 22 | 24 |   COMMIT: | 
| 23 | 25 |     sh: echo "$(git log --no-show-signature -n 1 --format=%h)" | 
| @@ -380,6 +382,85 @@ tasks: | 
| 380 | 382 |     cmds: | 
| 381 | 383 |       - npm install | 
| 382 | 384 | 
 | 
|  | 385 | +  # Parameter variables: | 
|  | 386 | +  # - PROJECT_PATH: path of the npm-managed project. Default value: "./" | 
|  | 387 | +  # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-npm-task/Taskfile.yml | 
|  | 388 | +  npm:validate: | 
|  | 389 | +    desc: Validate npm configuration files against their JSON schema | 
|  | 390 | +    vars: | 
|  | 391 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/package.json | 
|  | 392 | +      SCHEMA_URL: https://json.schemastore.org/package.json | 
|  | 393 | +      SCHEMA_PATH: | 
|  | 394 | +        sh: task utility:mktemp-file TEMPLATE="package-json-schema-XXXXXXXXXX.json" | 
|  | 395 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/ava.json | 
|  | 396 | +      AVA_SCHEMA_URL: https://json.schemastore.org/ava.json | 
|  | 397 | +      AVA_SCHEMA_PATH: | 
|  | 398 | +        sh: task utility:mktemp-file TEMPLATE="ava-schema-XXXXXXXXXX.json" | 
|  | 399 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/base.json | 
|  | 400 | +      BASE_SCHEMA_URL: https://json.schemastore.org/base.json | 
|  | 401 | +      BASE_SCHEMA_PATH: | 
|  | 402 | +        sh: task utility:mktemp-file TEMPLATE="base-schema-XXXXXXXXXX.json" | 
|  | 403 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/eslintrc.json | 
|  | 404 | +      ESLINTRC_SCHEMA_URL: https://json.schemastore.org/eslintrc.json | 
|  | 405 | +      ESLINTRC_SCHEMA_PATH: | 
|  | 406 | +        sh: task utility:mktemp-file TEMPLATE="eslintrc-schema-XXXXXXXXXX.json" | 
|  | 407 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/jscpd.json | 
|  | 408 | +      JSCPD_SCHEMA_URL: https://json.schemastore.org/jscpd.json | 
|  | 409 | +      JSCPD_SCHEMA_PATH: | 
|  | 410 | +        sh: task utility:mktemp-file TEMPLATE="jscpd-schema-XXXXXXXXXX.json" | 
|  | 411 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/npm-badges.json | 
|  | 412 | +      NPM_BADGES_SCHEMA_URL: https://json.schemastore.org/npm-badges.json | 
|  | 413 | +      NPM_BADGES_SCHEMA_PATH: | 
|  | 414 | +        sh: task utility:mktemp-file TEMPLATE="npm-badges-schema-XXXXXXXXXX.json" | 
|  | 415 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/partial-eslint-plugins.json | 
|  | 416 | +      PARTIAL_ESLINT_PLUGINS_SCHEMA_URL: https://json.schemastore.org/partial-eslint-plugins.json | 
|  | 417 | +      PARTIAL_ESLINT_PLUGINS_PATH: | 
|  | 418 | +        sh: task utility:mktemp-file TEMPLATE="partial-eslint-plugins-schema-XXXXXXXXXX.json" | 
|  | 419 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/prettierrc.json | 
|  | 420 | +      PRETTIERRC_SCHEMA_URL: https://json.schemastore.org/prettierrc.json | 
|  | 421 | +      PRETTIERRC_SCHEMA_PATH: | 
|  | 422 | +        sh: task utility:mktemp-file TEMPLATE="prettierrc-schema-XXXXXXXXXX.json" | 
|  | 423 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/semantic-release.json | 
|  | 424 | +      SEMANTIC_RELEASE_SCHEMA_URL: https://json.schemastore.org/semantic-release.json | 
|  | 425 | +      SEMANTIC_RELEASE_SCHEMA_PATH: | 
|  | 426 | +        sh: task utility:mktemp-file TEMPLATE="semantic-release-schema-XXXXXXXXXX.json" | 
|  | 427 | +      # Source: https://github.com/SchemaStore/schemastore/blob/master/src/schemas/json/stylelintrc.json | 
|  | 428 | +      STYLELINTRC_SCHEMA_URL: https://json.schemastore.org/stylelintrc.json | 
|  | 429 | +      STYLELINTRC_SCHEMA_PATH: | 
|  | 430 | +        sh: task utility:mktemp-file TEMPLATE="stylelintrc-schema-XXXXXXXXXX.json" | 
|  | 431 | +      INSTANCE_PATH: >- | 
|  | 432 | +        {{default "." .PROJECT_PATH}}/package.json | 
|  | 433 | +      PROJECT_FOLDER: | 
|  | 434 | +        sh: pwd | 
|  | 435 | +      WORKING_FOLDER: | 
|  | 436 | +        sh: task utility:mktemp-folder TEMPLATE="dependabot-validate-XXXXXXXXXX" | 
|  | 437 | +    cmds: | 
|  | 438 | +      - wget --quiet --output-document="{{.SCHEMA_PATH}}" {{.SCHEMA_URL}} | 
|  | 439 | +      - wget --quiet --output-document="{{.AVA_SCHEMA_PATH}}" {{.AVA_SCHEMA_URL}} | 
|  | 440 | +      - wget --quiet --output-document="{{.BASE_SCHEMA_PATH}}" {{.BASE_SCHEMA_URL}} | 
|  | 441 | +      - wget --quiet --output-document="{{.ESLINTRC_SCHEMA_PATH}}" {{.ESLINTRC_SCHEMA_URL}} | 
|  | 442 | +      - wget --quiet --output-document="{{.JSCPD_SCHEMA_PATH}}" {{.JSCPD_SCHEMA_URL}} | 
|  | 443 | +      - wget --quiet --output-document="{{.NPM_BADGES_SCHEMA_PATH}}" {{.NPM_BADGES_SCHEMA_URL}} | 
|  | 444 | +      - wget --quiet --output-document="{{.PARTIAL_ESLINT_PLUGINS_PATH}}" {{.PARTIAL_ESLINT_PLUGINS_SCHEMA_URL}} | 
|  | 445 | +      - wget --quiet --output-document="{{.PRETTIERRC_SCHEMA_PATH}}" {{.PRETTIERRC_SCHEMA_URL}} | 
|  | 446 | +      - wget --quiet --output-document="{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" {{.SEMANTIC_RELEASE_SCHEMA_URL}} | 
|  | 447 | +      - wget --quiet --output-document="{{.STYLELINTRC_SCHEMA_PATH}}" {{.STYLELINTRC_SCHEMA_URL}} | 
|  | 448 | +      - | | 
|  | 449 | +        cd "{{.WORKING_FOLDER}}"  # Workaround for https://github.com/npm/cli/issues/3210 | 
|  | 450 | +        npx ajv-cli@{{.SCHEMA_DRAFT_4_AJV_CLI_VERSION}} validate \ | 
|  | 451 | +          --all-errors \ | 
|  | 452 | +          -s "{{.SCHEMA_PATH}}" \ | 
|  | 453 | +          -r "{{.AVA_SCHEMA_PATH}}" \ | 
|  | 454 | +          -r "{{.BASE_SCHEMA_PATH}}" \ | 
|  | 455 | +          -r "{{.ESLINTRC_SCHEMA_PATH}}" \ | 
|  | 456 | +          -r "{{.JSCPD_SCHEMA_PATH}}" \ | 
|  | 457 | +          -r "{{.NPM_BADGES_SCHEMA_PATH}}" \ | 
|  | 458 | +          -r "{{.PARTIAL_ESLINT_PLUGINS_PATH}}" \ | 
|  | 459 | +          -r "{{.PRETTIERRC_SCHEMA_PATH}}" \ | 
|  | 460 | +          -r "{{.SEMANTIC_RELEASE_SCHEMA_PATH}}" \ | 
|  | 461 | +          -r "{{.STYLELINTRC_SCHEMA_PATH}}" \ | 
|  | 462 | +          -d "{{.PROJECT_FOLDER}}/{{.INSTANCE_PATH}}" | 
|  | 463 | +
 | 
| 383 | 464 |   # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/poetry-task/Taskfile.yml | 
| 384 | 465 |   poetry:install-deps: | 
| 385 | 466 |     desc: Install dependencies managed by Poetry | 
| @@ -465,6 +546,41 @@ tasks: | 
| 465 | 546 |         fi | 
| 466 | 547 |       - shfmt -w "{{.SCRIPT_PATH}}" | 
| 467 | 548 | 
 | 
|  | 549 | +  # Make a temporary file named according to the passed TEMPLATE variable and print the path passed to stdout | 
|  | 550 | +  # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml | 
|  | 551 | +  utility:mktemp-file: | 
|  | 552 | +    vars: | 
|  | 553 | +      RAW_PATH: | 
|  | 554 | +        sh: mktemp --tmpdir "{{.TEMPLATE}}" | 
|  | 555 | +    cmds: | 
|  | 556 | +      - task: utility:normalize-path | 
|  | 557 | +        vars: | 
|  | 558 | +          RAW_PATH: "{{.RAW_PATH}}" | 
|  | 559 | + | 
|  | 560 | +  # Make a temporary folder named according to the passed TEMPLATE variable and print the path passed to stdout | 
|  | 561 | +  # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml | 
|  | 562 | +  utility:mktemp-folder: | 
|  | 563 | +    vars: | 
|  | 564 | +      RAW_PATH: | 
|  | 565 | +        sh: mktemp --directory --tmpdir "{{.TEMPLATE}}" | 
|  | 566 | +    cmds: | 
|  | 567 | +      - task: utility:normalize-path | 
|  | 568 | +        vars: | 
|  | 569 | +          RAW_PATH: "{{.RAW_PATH}}" | 
|  | 570 | + | 
|  | 571 | +  # Print a normalized version of the path passed via the RAW_PATH variable to stdout | 
|  | 572 | +  # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/windows-task/Taskfile.yml | 
|  | 573 | +  utility:normalize-path: | 
|  | 574 | +    cmds: | 
|  | 575 | +      - | | 
|  | 576 | +        if [[ "{{.OS}}" == "Windows_NT" ]] && which cygpath &>/dev/null; then | 
|  | 577 | +            # Even though the shell handles POSIX format absolute paths as expected, external applications do not. | 
|  | 578 | +            # So paths passed to such applications must first be converted to Windows format. | 
|  | 579 | +            cygpath -w "{{.RAW_PATH}}" | 
|  | 580 | +        else | 
|  | 581 | +          echo "{{.RAW_PATH}}" | 
|  | 582 | +        fi | 
|  | 583 | +
 | 
| 468 | 584 |   # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-mkdocs-task/Taskfile.yml | 
| 469 | 585 |   website:check: | 
| 470 | 586 |     desc: Check whether the MkDocs-based website will build | 
|  | 
0 commit comments