Skip to content

feat(cnf): as-of history fold + daemon :as-of op (thread 019f100f-eef… #64

feat(cnf): as-of history fold + daemon :as-of op (thread 019f100f-eef…

feat(cnf): as-of history fold + daemon :as-of op (thread 019f100f-eef… #64

Workflow file for this run

name: ci
on:
push:
pull_request:
# Fram had no CI of its own — its JVM daemon, engine mTLS, and 17 test suites only
# ever ran on a dev machine, so a daemon-runtime change (bb -> JVM) slipped through
# and broke a downstream consumer. This workflow runs the real suites + the real
# JVM/mTLS daemon, so that class of break is caught here, at the source.
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
# The catalog currency gate (catalog_current_test.clj) diffs the GENERATED beagle
# fram-API catalog (stdlib-fram.rkt) against fram's source — checkout beagle to enable it.
- name: Checkout beagle (for the stdlib-fram.rkt currency gate)
uses: actions/checkout@v4
with:
repository: Autonymy/beagle
path: .beagle
- name: Install babashka
run: curl -sL https://raw.githubusercontent.com/babashka/babashka/master/install | sudo bash
# The coordinator daemon (bin/fram-daemon) and the mTLS test run on the JVM,
# not bb — bb's native image lacks javax.net.ssl.SSLServerSocket. ubuntu-latest
# ships a JDK (keytool, which tls_test uses); we add the Clojure CLI on top.
- name: Install Clojure CLI
run: |
curl -L -O https://github.com/clojure/brew-install/releases/latest/download/linux-install.sh
chmod +x linux-install.sh
sudo ./linux-install.sh
clojure --version
- name: Warm JVM deps (cheshire) so the daemon boots fast
run: clojure -P
- name: README anti-rot gate (URLs, verbs, paths, the core loop runs)
run: scripts/readme-check.sh
- name: Unit + integration suites (babashka, on the committed out/)
env:
BEAGLE: ${{ github.workspace }}/.beagle
run: |
fail=0
for t in tests/*_test.clj; do
[ "$t" = tests/tls_test.clj ] && continue # runs separately below (spawns the JVM daemon)
echo "== $t =="
bb -cp out "$t" || fail=1
done
exit $fail
- name: mTLS round-trip (JVM daemon, engine-terminated mutual TLS)
run: bb tests/tls_test.clj
# Perf-budget: the #44 propagation thesis (graph-prop FLAT in K; graph >> git at K=8) must not
# silently rot. Ratio-based budgets (machine-independent) + generous absolute ceilings, so CI
# timing noise doesn't flake. Runs the content-asserted K=1,8 sweep; budgets in perf-budget.edn.
- name: Propagation perf-budget (flat-propagation thesis, fail on regression)
run: bb -cp out bench/propagation/check-budget.clj