Skip to content

Merge branch 'main' into lastmod #19

Merge branch 'main' into lastmod

Merge branch 'main' into lastmod #19

name: Validate Zenodo Metadata
on:
push:
paths:
- '.zenodo.json'
pull_request:
paths:
- '.zenodo.json'
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: install curl headers
run: |
sudo apt-get update
sudo apt-get install -y libcurl4-openssl-dev
- name: Setup R
uses: r-lib/actions/setup-r@v2
- name: Install Dependencies
run: install.packages("jsonvalidate")
shell: Rscript {0}
- name: Get JSON schema
run: |
curl -s -o schema.json \
https://raw.githubusercontent.com/zenodo/zenodo/master/zenodo/modules/deposit/jsonschemas/deposits/records/legacyrecord.json
- name: Validate JSON
shell: Rscript {0}
run: |
library(jsonvalidate);
validate <- jsonvalidate::json_validator('schema.json')
z <- tryCatch(validate('.zenodo.json',
verbose = TRUE,
error = FALSE,
greedy = TRUE),
error = function(e) e
)
if(!z){
errs <- attr(z, "errors", TRUE)
msg <- sprintf("'%s' %s",
errs$field,
errs$message)
cat(paste(msg, collapse = "\n"))
cat("\n")
stop("json validation failed", call. = FALSE)
}