#!/usr/bin/env bash # The bring-up's test repository (Development Plan, live runs): # nisse-testing-operator/nisse-bringup, made as the end-to-end tests make # theirs (tests/integration/e2e_support.py, make_repo), but kept between runs. # Seeded with the test package, the bring-up agent's account a collaborator, # main protected, and a deploy key of its own at $E2E/ssh/nisse-bringup.key. # # scripts/bringup-repo.sh create make it # scripts/bringup-repo.sh reset delete it and make it again # scripts/bringup-repo.sh delete delete it # # Needs NISSE_OPERATOR_TOKEN (.env here) and the bring-up agent's token # (NISSE_GITEA_TOKEN in $E2E/.env), which names the agent's account. set -euo pipefail cd "$(dirname "$0")/.." E2E=${NISSE_E2E:-/root/nisse-e2e} case "${1:-}" in create|reset|delete) ;; *) sed -n '2,15p' "$0" | sed 's/^# \{0,1\}//'; exit 2 ;; esac set -a; [ -f .env ] && . ./.env; set +a exec uv run python - "$1" "$E2E" <<'PY' import sys from pathlib import Path sys.path.insert(0, "tests/integration") from e2e_support import OWNER, delete_repo, make_repo, operator_gitea # noqa: E402 from nisse_dev.envfile import load_env_file # noqa: E402 from nisse_dev.gitea import GiteaClient # noqa: E402 action, e2e = sys.argv[1], Path(sys.argv[2]) url = "https://gitea.dongar.net" operator = operator_gitea(url) name = "nisse-bringup" if action in ("reset", "delete"): delete_repo(operator, f"{OWNER}/{name}") print(f"deleted {OWNER}/{name}") if action in ("create", "reset"): agent_env: dict[str, str] = {} load_env_file(e2e / ".env", agent_env) agent = GiteaClient(url, agent_env["NISSE_GITEA_TOKEN"]).whoami() repo = make_repo(operator, name, e2e / "ssh", agent=agent) print(f"made {repo.name}: {agent} a collaborator; push key {repo.push_key}") PY