#!/bin/sh # mesh-check-toolchain: typescript # mesh-check-also: go go/merge-check.sh # # The SDK's own check (novox/hq ADR 0237 as amended): the second layer of a pull request's merge check, # `mesh/repo-check`, run by the build seat in the mesh's TypeScript toolchain — and by hand. # # The gate is the build seat's first layer (`mesh/merge-gate`), run because the mesh's module graph builds # mesh-sdk from here — and every module whose build packages it. This is the SDK's own: the TypeScript # spine every module imports, type-checked and its suite run, its dependencies installed from the lock # file alone (public packages: the SDK depends on nothing of the mesh's). # # **Said, never passed silently**: the Python, Rust and C bindings are not tested in any toolchain. The Go # binding runs in the Go toolchain, from go/merge-check.sh, declared on the second line (novox/hq ADR 0272); here # it runs only when a Go compiler is present (a person's run). set -eu npm ci --no-audit --no-fund --loglevel=error node node_modules/typescript/bin/tsc --noEmit npm test if command -v go >/dev/null 2>&1; then (cd go && test -z "$(gofmt -l .)" && go vet ./... && go test -count=1 ./...) else echo "NOT TESTED HERE: go/ (the Go binding) — the Go toolchain runs it from go/merge-check.sh" fi echo "NOT TESTED HERE: python/, rust/, c/ — no toolchain of theirs runs a merge check"