Skip to content

Add "master-deno" flavor of validator to use as well #1012

Add "master-deno" flavor of validator to use as well

Add "master-deno" flavor of validator to use as well #1012

name: validate_datasets
on:
push:
branches: ['**']
pull_request:
branches: ['**']
create:
branches: [master]
tags: ['**']
schedule:
- cron: "0 4 * * 1"
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
bids-validator: [master, stable, master-deno]
runs-on: ${{ matrix.platform }}
env:
TZ: Europe/Berlin
FORCE_COLOR: 1
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
if: "matrix.bids-validator == 'stable' || matrix.bids-validator == 'master'"
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install BIDS validator (stable)
if: "matrix.bids-validator == 'stable'"
run: |
npm install -g bids-validator
- name: Install BIDS validator (master)
if: "matrix.bids-validator == 'master'"
run: |
pushd ..
# Get npm 7+
npm install -g npm
git clone --depth 1 https://github.com/bids-standard/bids-validator
cd bids-validator
# Generate the full development node_modules
npm clean-install
# Build & bundle the bids-validator CLI package
npm -w bids-validator run build
# Generate a package to install globally
npm -w bids-validator pack
# Install the package globally
bash -c "npm install -g bids-validator-*.tgz"
popd
- uses: denoland/[email protected]
if: "matrix.bids-validator == 'master-deno'"
with:
deno-version: v1.x
- name: Install BIDS validator (master deno build)
if: "matrix.bids-validator == 'master-deno'"
run: |
set -x
pushd ..
git clone --depth 1 https://github.com/bids-standard/bids-validator
# For debugging purposes
echo "PATH=$PATH"
VALIDATOR=/usr/bin/bids-validator
sudo bash -c 'echo -e "#!/bin/sh\n""$PWD/bids-validator/bids-validator/bids-validator-deno \"\$@\"" > /usr/bin/bids-validator'
cat $VALIDATOR
sudo chmod a+rx $VALIDATOR
which -a bids-validator
bids-validator --version
bids-validator --help
popd
shell: bash
- name: Display versions and environment information
run: |
echo $TZ
date
echo "npm"; npm --version
echo "node"; node --version
echo "bids-validator"; bids-validator --version
shell: bash
- name: Check that no large files are present
if: "matrix.bids-validator == 'stable'"
run: |
echo "Checking for big files ..."
found=`find . -not -path "./.git*" -type f -size +500k`
if [ "$found" == "" ]
then
echo "No big files present, great!"
else
echo "Found big files:"
echo "$found"
exit 1;
fi
shell: bash
- name: Mark to be skipped some examples for a deno based
if: "matrix.bids-validator == 'master-deno'"
run: |
touch {ds000117,ds000246,ds000247,ds000248,eeg_ds003645s_hed_demo,ieeg_motorMiller2007,ieeg_visual}/.SKIP_VALIDATION
shell: bash
- name: Validate all BIDS datasets using bids-validator
run: |
cat ./run_tests.sh
./run_tests.sh
shell: bash