Skip to content

ci(5): run the Job tester (jote) against every job submodule#6

Merged
alanbchristie merged 3 commits into
mainfrom
squonk2-jobs_abc-5-jote-ci
Jul 16, 2026
Merged

ci(5): run the Job tester (jote) against every job submodule#6
alanbchristie merged 3 commits into
mainfrom
squonk2-jobs_abc-5-jote-ci

Conversation

@claude-im

Copy link
Copy Markdown
Collaborator

Fixes #5

What this adds

A GitHub Actions workflow (.github/workflows/test-jobs.yaml) that runs the Job Tester (jote) against every job-based submodule using its --dry-run option — validating the Job Definition and Manifest files against the decoder schemas (and lint rules) without executing any tests or containers.

  • Matrix over the six job repositories: virtual-screening, squonk2-cdk, squonk2-chemaxon, squonk2-fragmenstein, squonk2-jaqpot, squonk2-smartcyp. fail-fast: false so one repo's failure doesn't mask the others.
  • Only the repo under test is checked out per leg (its SSH submodule URL is rewritten to anonymous HTTPS — the job repos are public).
  • Manifests are auto-discovered by globbing data-manager/manifest*.yaml, so new manifests are picked up without editing the workflow.
  • jote is installed fresh from PyPI (im-jote) so the check always reflects the current tester and schemas. Run with --dry-run --allow-no-tests to keep it a pure definition/schema check.
  • Triggers: push to main, all PRs, weekly schedule, and manual dispatch.

Expected result: virtual-screening is red

As requested, no manifests are excluded. virtual-screening will fail because manifest-moldb.yamlmoldb.yaml uses maxValue/minValue properties the (deliberately incomplete) decoder schema rejects:

! Job definition "data-manager/moldb.yaml" does not comply with schema
Additional properties are not allowed ('maxValue', 'minValue' were unexpected)

virtual-screening's own CI currently side-steps this by omitting moldb; this workflow surfaces it instead. The other five repositories pass. Fixing it means either extending the decoder schema to cover these properties or correcting moldb.yaml — a separate piece of work.

Verification

Ran the exact per-repo step logic locally with im-jote against all six submodules: virtual-screening → exit 1 (moldb), the other five → exit 0. Workflow YAML parses cleanly.

🤖 Generated with Claude Code

Add a GitHub Actions workflow that runs 'jote --dry-run' against every
manifest in each job-based submodule (virtual-screening, squonk2-cdk,
squonk2-chemaxon, squonk2-fragmenstein, squonk2-jaqpot, squonk2-smartcyp).
A dry-run validates the Job Definition and Manifest files against the
decoder schemas and lint rules without executing any tests or containers.

Manifests are auto-discovered by globbing data-manager/manifest*.yaml, and
each repository is a separate matrix leg (fail-fast disabled) so one
non-compliant repository does not mask the others.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
claude-im and others added 2 commits July 16, 2026 16:09
Install im-jote at the version set by the workflow-level JOTE_VERSION
variable (default 0.12.0) so the check is reproducible and can be moved in
one place. Bump actions/checkout to v7 and actions/setup-python to v6.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0.13.0 fixes the docker-compose probe on --dry-run
(InformaticsMatters/squonk2-data-manager-job-tester#10), removing the
transient flake on job repositories that have tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@alanbchristie
alanbchristie merged commit 26d5ce5 into main Jul 16, 2026
5 of 6 checks passed
@alanbchristie
alanbchristie deleted the squonk2-jobs_abc-5-jote-ci branch July 16, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI to run the Job tester (on every Job repository)

2 participants