Spaces:
Runtime error
Runtime error
name: Validate Notebooks Metadata | |
on: | |
pull_request: | |
types: [opened, synchronize] | |
paths: | |
- 'notebooks/**/*.ipynb' | |
concurrency: | |
group: ${{ github.head_ref || github.ref_name }} | |
cancel-in-progress: true | |
jobs: | |
validate_notebooks_metadata: | |
runs-on: ubuntu-20.04 | |
name: Validate notebooks metadata | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
fetch-depth: 0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Get changed notebook files | |
id: get_changed_notebook_files | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { execSync } = require('child_process'); | |
const { commits } = context.payload.pull_request; | |
const gitDiffCommand = `git diff --name-only --relative=notebooks --diff-filter=d HEAD~${commits} -- *.ipynb ':!notebooks/utils'`; | |
const changedNotebooks = execSync(gitDiffCommand).toString().split('\n').filter(Boolean); | |
core.exportVariable('CHANGED_NOTEBOOKS', JSON.stringify(changedNotebooks)); | |
- name: Install Node.js dependencies | |
working-directory: ./selector | |
shell: bash | |
run: npm ci | |
- name: Validate changed notebooks metadata | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
const { NotebookMetadataHandler } = await import('${{ github.workspace }}/selector/src/notebook-metadata/notebook-metadata-handler.js'); | |
const changedNotebooks = JSON.parse(process.env.CHANGED_NOTEBOOKS); | |
const [error, metadataMarkdowns] = NotebookMetadataHandler.validateNotebooks(changedNotebooks); | |
core.summary.addHeading(`Modified Notebooks (${metadataMarkdowns.length})`, '2'); | |
core.summary.addRaw(metadataMarkdowns.join('\n\n')); | |
core.summary.write(); | |
if (error) { | |
core.setFailed(error); | |
} | |