AkurAI Build
Menu

akurai-tasks

public

Latest change 271c849fd59418fec62a8f2594ce02991e0bc7e2 - ci: isolate import planner database by Ólafur Búi Ólafsson

#!/bin/sh
set -eu

root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
cd "$root"

cargo build -p akurai-tasks >/dev/null
work=$(mktemp -d "${TMPDIR:-/tmp}/akurai-tasks-import.XXXXXX")
trap 'rm -rf "$work"' EXIT HUP INT TERM
board="$work/source/.kanban"
mkdir -p "$board/01-inbox" "$board/06-review"
printf '# Imported card\n\nExact source bytes.\n' >"$board/01-inbox/card.md"
printf '# Quarantined card\npassword=not-a-real-secret\n' >"$board/06-review/secret.md"

discovered=$(target/debug/akurai-tasks --db "$work/planner.db" import discover "$work/source")
case "$discovered" in
  *'"kind":"file-kanban"'*'"disposition":"live"'*) ;;
  *) echo "source discovery failed" >&2; exit 1 ;;
esac

target/debug/akurai-tasks --db "$work/planner.db" import plan "$board" IMPORT live >"$work/bundle.json"
case "$(cat "$work/bundle.json")" in
  *'"sourceKey":"01-inbox/card.md"'*'"outcome":"imported"'*'"sourceKey":"06-review/secret.md"'*'"outcome":"quarantined"'*) ;;
  *) echo "import plan disposition failed" >&2; exit 1 ;;
esac

applied=$(target/debug/akurai-tasks --db "$work/tasks.db" --actor import-test --idempotency import-apply import apply "$work/bundle.json")
run=$(printf '%s\n' "$applied" | sed -n 's/.*"id":"\([^"]*\)".*/\1/p')
[ -n "$run" ] || { echo "import run id missing" >&2; exit 1; }
verified=$(target/debug/akurai-tasks --db "$work/tasks.db" import verify "$run")
case "$verified" in
  *'"ok":true'*'"dispositions":2'*'"rawChecked":1'*) ;;
  *) echo "import verification failed" >&2; exit 1 ;;
esac

printf '%s\n' "test-import: discovery, planning, quarantine, apply, and exact-byte digest verification passed"