name: Core Machine Contract Test on: pull_request: paths: - "src/modules/machines/**" - "src/animations/coreMachineAnimations.ts" - "scripts/audit-core-machine-contract.mjs" - ".github/workflows/core-machine-contract-test.yml" push: branches: - main paths: - "src/modules/machines/**" - "src/animations/coreMachineAnimations.ts" - "scripts/audit-core-machine-contract.mjs" - ".github/workflows/core-machine-contract-test.yml" permissions: contents: read jobs: catalogue-contract: name: Catalogue contract audit runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: Install dependencies shell: bash run: | set -euo pipefail if [ -f pnpm-lock.yaml ]; then corepack enable pnpm install --frozen-lockfile elif [ -f yarn.lock ]; then corepack enable yarn install --immutable || yarn install --frozen-lockfile elif [ -f package-lock.json ] || [ -f npm-shrinkwrap.json ]; then npm ci else npm install fi - name: Run core machine contract audit run: node scripts/audit-core-machine-contract.mjs --max-issues 300