91 lines
3.5 KiB
Makefile
91 lines
3.5 KiB
Makefile
# Justfile for Migrate Database Changes Workflow
|
|
# Docs: https://just.systems/man/en/
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Global settings
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# Load Env
|
|
set dotenv-load
|
|
set dotenv-required := true
|
|
|
|
# Use zsh
|
|
set shell := ["bash", "-cu"]
|
|
|
|
BATTLESNAKE_CLI_DIR := ".tools/battlesnake-cli"
|
|
BATTLESNAKE_CLI_BIN := ".tools/battlesnake-cli/battlesnake"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Default
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# List all Available recipes
|
|
[private]
|
|
default:
|
|
@just --list --unsorted
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Snake Script helpers
|
|
# ------------------------------------------------------------------------------
|
|
|
|
run:
|
|
"{{justfile_directory()}}/main.py"
|
|
|
|
build-battlesnake-cli:
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
install_dir="{{justfile_directory()}}/{{BATTLESNAKE_CLI_DIR}}"
|
|
bin_path="{{justfile_directory()}}/{{BATTLESNAKE_CLI_BIN}}"
|
|
mkdir -p "$install_dir"
|
|
|
|
if [ ! -f "{{justfile_directory()}}/local-client/go.mod" ]; then
|
|
echo "Missing local-client source. Run: git submodule update --init --recursive"
|
|
exit 1
|
|
fi
|
|
|
|
(
|
|
cd "{{justfile_directory()}}/local-client"
|
|
go build -o "$bin_path" ./cli/battlesnake/main.go
|
|
)
|
|
|
|
"$bin_path" --help > /dev/null
|
|
echo "Built Battlesnake CLI at $bin_path"
|
|
|
|
battlesnake-cli-version:
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
"{{justfile_directory()}}/{{BATTLESNAKE_CLI_BIN}}" --help
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Testing helpers
|
|
# ------------------------------------------------------------------------------
|
|
|
|
test-constrictor: build-battlesnake-cli
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BATTLESNAKE_CLI="{{justfile_directory()}}/{{BATTLESNAKE_CLI_BIN}}"
|
|
"$BATTLESNAKE_CLI" play -W 11 -H 11 --name 'Python Starter Project' --url http://localhost:8000 -g constrictor --browser --minimumFood 0
|
|
|
|
test-seed: build-battlesnake-cli
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
BATTLESNAKE_CLI="{{justfile_directory()}}/{{BATTLESNAKE_CLI_BIN}}"
|
|
"$BATTLESNAKE_CLI" play -W 11 -H 11 --name 'Python Starter Project' --url http://localhost:8000 -g solo --browser --seed 1713099635738952360
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Fataset helpers
|
|
# ------------------------------------------------------------------------------
|
|
|
|
export-dataset input="data" output="data/dataset/good_moves.jsonl":
|
|
python -m server.DatasetExporter --input "{{input}}" --output "{{output}}"
|
|
|
|
curate-dataset input="good_moves-*.jsonl" output="data/dataset/best_moves.jsonl" min_turn="6" late_turn="20" max_safe_options="2" min_score="3" append="false" archive="false" archive_dir="":
|
|
FLAGS=""; if [ "{{append}}" = "true" ]; then FLAGS="$FLAGS --append"; fi; if [ "{{archive}}" = "true" ]; then FLAGS="$FLAGS --archive-input"; fi; if [ -n "{{archive_dir}}" ]; then FLAGS="$FLAGS --archive-dir {{archive_dir}}"; fi; python -m server.DatasetCurator --input "{{input}}" --output "{{output}}" --min-turn "{{min_turn}}" --late-turn "{{late_turn}}" --max-safe-options "{{max_safe_options}}" --min-score "{{min_score}}" $FLAGS
|
|
|
|
analyze-dataset input="good_moves-*.jsonl" output="":
|
|
if [ -n "{{output}}" ]; then python -m server.DatasetStats --input "{{input}}" --output "{{output}}"; else python -m server.DatasetStats --input "{{input}}"; fi
|