name: metadata

on:
  # only run on metadata file changes
  push:
    paths:
      - 'CITATION.cff'
      - '.zenodo.json'
      - '.github/workflows/metadata.yml' # meta
  pull_request:
    paths:
      - 'CITATION.cff'
      - '.zenodo.json'
      - '.github/workflows/metadata.yml' # meta

jobs:
  cff-validate:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v7

      - name: Validate CITATION.cff
        uses: docker://citationcff/cffconvert:latest
        with:
          args: --validate

  zenodo-validate:
    # Zenodo schema URL is dead
    if: ${{ false }}

    strategy:
      matrix:
        node-version:
          - 14

    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v7

      - name: Set up Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v7
        with:
          node-version: ${{ matrix.node-version }}

      - name: Install ajv
        run: npm install -g ajv-cli

      - name: Download Zenodo schema
        run: wget https://zenodo.org/schemas/deposits/records/legacyrecord.json

      - name: Migrate Zenodo schema # https://github.com/ajv-validator/ajv-cli/issues/199
        run: ajv migrate -s legacyrecord.json

      - name: Validate .zenodo.json
        run: ajv validate -s legacyrecord.json -d .zenodo.json
