Skip to content

ci: verify hypatia-scan setup-beam pins (throwaway) #425

ci: verify hypatia-scan setup-beam pins (throwaway)

ci: verify hypatia-scan setup-beam pins (throwaway) #425

Workflow file for this run

# SPDX-License-Identifier: PMPL-1.0-or-later
name: TypeScript / JavaScript / ReScript Blocker
on: [push, pull_request]
permissions:
contents: read
jobs:
check:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Block new TypeScript / JavaScript / ReScript
run: |
# Estate language policy: RS/TS/JS -> AffineScript -> typed-wasm.
# ReScript (.res) is also banned now that AffineScript is the destination
# — no longer used as the TS replacement.
NEW_TS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.(ts|tsx)$' | grep -v '\.gen\.' || true)
NEW_JS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.(js|jsx)$' | grep -v '\.gen\.' | grep -v 'node_modules' || true)
NEW_RES=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E '\.res$' || true)
if [ -n "$NEW_TS" ] || [ -n "$NEW_JS" ] || [ -n "$NEW_RES" ]; then
echo "❌ New TS/JS/ReScript files detected. Use AffineScript instead."
[ -n "$NEW_TS" ] && echo "$NEW_TS"
[ -n "$NEW_JS" ] && echo "$NEW_JS"
[ -n "$NEW_RES" ] && echo "$NEW_RES"
exit 1
fi
echo "✅ AffineScript policy enforced"