Menu
akurai-tasks
publicLatest 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"