Better testing #10
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Validate activity-list.jsonld | |
on: | |
pull_request: | |
branches: [ master ] | |
push: | |
branches: [ master, feature/improved-version-control ] | |
jobs: | |
Validate: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
- name: Install Node.js 20.x | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20.x' | |
- name: Install dependencies | |
run: npm install @openactive/skos ajv | |
- name: Validate activity-list.jsonld | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const Ajv = require('ajv'); | |
const fs = require('fs'); | |
const skos = require('@openactive/skos'); | |
var schemafile = "./schema/activity-list.schema.json"; | |
var rawfile = "./data/activity-list.jsonld"; | |
let schema = JSON.parse(fs.readFileSync(schemafile)); | |
let data = JSON.parse(fs.readFileSync(rawfile)); | |
var ajv = new Ajv({ allErrors: 'true', verbose: 'true' }); | |
var validate = ajv.compile(schema); | |
var is_valid = validate(data); | |
// Try to load into SKOS.js (will throw on failure) | |
var scheme = new skos.ConceptScheme(data); | |
if(is_valid){ | |
console.log("activity-list.jsonld passed validation"); | |
} else { | |
const errorMessage = "activity-list.jsonld failed validation" | |
console.log(`${errorMessage}\n=======\n`); | |
console.log(validate.errors); | |
throw new Error(errorMessage); | |
} |