0
  • 我在 GitLab CI 中遇到错误。
  • 在此之前,我创建了一个问题
  • 问题解决了,但又出现了新问题。

schema-test.sh文件内容:

#!/usr/bin/env bash

# Test all file ends with schema.json via ajv

CURRENT_DIR=`dirname "$0"`

cd $CURRENT_DIR

for SCHEMA_FILE in *.schema.json
do
    SAMPLE_FILE=samples/${SCHEMA_FILE/schema/sample}
    echo Schema file: $SCHEMA_FILE
    if [ -f $SAMPLE_FILE ]
    then
        echo Found sample file: $SAMPLE_FILE
        npx ajv -s $SCHEMA_FILE -d $SAMPLE_FILE
    else
        echo "*NO* sample file found for $SCHEMA_FILE"
    fi
done

Gitlab CI 错误信息:

23 $ yarn test:schema
24 yarn run v1.21.1
25 $ ./src/schemas/schema-test.sh
26 Schema file: dev-assistant.schema.json
27 Found sample file: samples/dev-assistant.sample.json
28 npx: installed 6 in 1.124s
29 command not found: ajv
30 Schema file: form.schema.json
31 *NO* sample file found for form.schema.json
32 Schema file: news.schema.json
33 *NO* sample file found for news.schema.json
34 Schema file: repos.schema.json
35 Found sample file: samples/repos.sample.json
36 npx: installed 6 in 0.911s
37 command not found: ajv
38 Schema file: team-members.schema.json
39 Found sample file: samples/team-members.sample.json
40 npx: installed 6 in 0.902s
41 command not found: ajv
42 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
43 error Command failed with exit code 1.
47 ERROR: Job failed: command terminated with exit code 1

感谢您的所有帮助!

4

1 回答 1

1

假设ajv(Another JSON Schema Validator)已安装,请确保它不会打开编辑器来询问您任何内容:根据zkat/npx问题 116,npx 不会挂起,而是说command not found: xxx.

确保ajv首先正确配置(检查其版本):

发布了支持 Draft-07 的 Ajv 版本 6.0.0。它可能需要迁移您的架构或更新您的代码(要继续使用 draft-04 和 v5 架构,将支持 Draft-06 架构而无需更改)。

请注意:要将 Ajv 与 draft-06 模式一起使用,您需要将元模式显式添加到验证器实例

于 2020-01-24T05:20:03.837 回答