build(catalog): expose production publishing workflow
Add small Justfile entry points for generating the complete production catalog authority or safely regenerating one game. Keep fixture validation separate and allow operators to select a trusted unrar executable. Document the complete package layout, BLAKE3 and ContentId model, full/incremental publication procedure, verification and bundle gates, and peer-CLI workflows. Record the fresh final local acceptance run without presenting Docker throughput as physical-LAN evidence. Test Plan: - just fixture-catalogs-check - just test - just clippy - just frontend-test - just build - LANSPREAD_S37_MIN_MIB_PER_S=100 just peer-cli-tests - just catalog-check-production (expected fail-closed: production manifests absent) - deno fmt --check README.md organize/testing/PEER_CLI_SCENARIOS.md - rumdl check --flavor commonmark README.md organize/testing/PEER_CLI_SCENARIOS.md - just --fmt --check - git diff --check
This commit is contained in:
@@ -6,7 +6,9 @@ default: run
|
||||
|
||||
FIXTURE_CATALOG_SOURCE := "crates/lanspread-tauri-deno-ts/src-tauri/game.db"
|
||||
FIXTURE_CATALOG_ROOT := "crates/lanspread-peer-cli/catalogs"
|
||||
FIXTURE_UNRAR := "crates/lanspread-tauri-deno-ts/src-tauri/binaries/unrar-x86_64-unknown-linux-gnu"
|
||||
PRODUCTION_CATALOG_DB := "crates/lanspread-tauri-deno-ts/src-tauri/game.db"
|
||||
PRODUCTION_MANIFEST_ROOT := "crates/lanspread-tauri-deno-ts/src-tauri/manifests"
|
||||
CATALOG_UNRAR := env_var_or_default("LANSPREAD_UNRAR", "crates/lanspread-tauri-deno-ts/src-tauri/binaries/unrar-x86_64-unknown-linux-gnu")
|
||||
TAURI_DEV_CONFIG := '{"bundle":{"resources":{"../../lanspread-peer-cli/catalogs/default/game.db":"game.db","../../lanspread-peer-cli/catalogs/default/manifests/":"manifests/","assets/*":"assets/"}}}'
|
||||
TAURI_FIXTURE_ENV := "LANSPREAD_USE_FIXTURE_CATALOG=1"
|
||||
|
||||
@@ -47,7 +49,7 @@ fixture-catalogs:
|
||||
cargo run -p lanspread-compat --bin lanspread-fixture-catalog -- \
|
||||
--source-catalog-db {{ FIXTURE_CATALOG_SOURCE }} \
|
||||
--output-dir {{ FIXTURE_CATALOG_ROOT }}/default \
|
||||
--unrar {{ FIXTURE_UNRAR }} \
|
||||
--unrar {{ CATALOG_UNRAR }} \
|
||||
--game-root crates/lanspread-peer-cli/fixtures/fixture-alpha/alienswarm \
|
||||
--game-root crates/lanspread-peer-cli/fixtures/fixture-alpha/bf1942 \
|
||||
--game-root crates/lanspread-peer-cli/fixtures/fixture-alpha/ggoo \
|
||||
@@ -61,31 +63,31 @@ fixture-catalogs:
|
||||
cargo run -p lanspread-compat --bin lanspread-fixture-catalog -- \
|
||||
--source-catalog-db {{ FIXTURE_CATALOG_SOURCE }} \
|
||||
--output-dir {{ FIXTURE_CATALOG_ROOT }}/solid \
|
||||
--unrar {{ FIXTURE_UNRAR }} \
|
||||
--unrar {{ CATALOG_UNRAR }} \
|
||||
--game-root crates/lanspread-peer-cli/fixtures/fixture-solid/cnctw
|
||||
cargo run -p lanspread-compat --bin lanspread-fixture-catalog -- \
|
||||
--source-catalog-db {{ FIXTURE_CATALOG_SOURCE }} \
|
||||
--output-dir {{ FIXTURE_CATALOG_ROOT }}/multi \
|
||||
--unrar {{ FIXTURE_UNRAR }} \
|
||||
--unrar {{ CATALOG_UNRAR }} \
|
||||
--game-root crates/lanspread-peer-cli/fixtures/fixture-multi/cnctw
|
||||
cargo run -p lanspread-compat --bin lanspread-fixture-catalog -- \
|
||||
--source-catalog-db {{ FIXTURE_CATALOG_SOURCE }} \
|
||||
--output-dir {{ FIXTURE_CATALOG_ROOT }}/unknown \
|
||||
--unrar {{ FIXTURE_UNRAR }} \
|
||||
--unrar {{ CATALOG_UNRAR }} \
|
||||
--game-root crates/lanspread-peer-cli/fixtures/fixture-unknown/cod2
|
||||
|
||||
fixture-catalog OUTPUT GAME_ROOT:
|
||||
cargo run -p lanspread-compat --bin lanspread-fixture-catalog -- \
|
||||
--source-catalog-db {{ FIXTURE_CATALOG_SOURCE }} \
|
||||
--output-dir "{{ OUTPUT }}" \
|
||||
--unrar {{ FIXTURE_UNRAR }} \
|
||||
--unrar {{ CATALOG_UNRAR }} \
|
||||
--game-root "{{ GAME_ROOT }}"
|
||||
|
||||
fixture-download-only-catalog OUTPUT GAME_ID GAME_ROOT:
|
||||
cargo run -p lanspread-compat --bin lanspread-fixture-catalog -- \
|
||||
--source-catalog-db {{ FIXTURE_CATALOG_SOURCE }} \
|
||||
--output-dir "{{ OUTPUT }}" \
|
||||
--unrar {{ FIXTURE_UNRAR }} \
|
||||
--unrar {{ CATALOG_UNRAR }} \
|
||||
--game-root "{{ GAME_ROOT }}" \
|
||||
--no-stream-install "{{ GAME_ID }}"
|
||||
|
||||
@@ -104,7 +106,27 @@ fixture-catalogs-check: fixture-catalog-check
|
||||
|
||||
catalog-check-production:
|
||||
cargo run -p lanspread-compat --bin lanspread-catalog-publisher -- check \
|
||||
--catalog-db crates/lanspread-tauri-deno-ts/src-tauri/game.db --all
|
||||
--catalog-db {{ PRODUCTION_CATALOG_DB }} \
|
||||
--manifests-dir {{ PRODUCTION_MANIFEST_ROOT }} \
|
||||
--all
|
||||
|
||||
# Generate the complete production authority from PACKAGES_DIR/<game_id>/.
|
||||
catalog-generate-production PACKAGES_DIR:
|
||||
cargo run -p lanspread-compat --bin lanspread-catalog-publisher -- generate \
|
||||
--catalog-db {{ PRODUCTION_CATALOG_DB }} \
|
||||
--packages-dir "{{ PACKAGES_DIR }}" \
|
||||
--manifests-dir {{ PRODUCTION_MANIFEST_ROOT }} \
|
||||
--unrar "{{ CATALOG_UNRAR }}" \
|
||||
--all
|
||||
|
||||
# Regenerate one game in an already complete production authority.
|
||||
catalog-generate-production-game PACKAGES_DIR GAME_ID:
|
||||
cargo run -p lanspread-compat --bin lanspread-catalog-publisher -- generate \
|
||||
--catalog-db {{ PRODUCTION_CATALOG_DB }} \
|
||||
--packages-dir "{{ PACKAGES_DIR }}" \
|
||||
--manifests-dir {{ PRODUCTION_MANIFEST_ROOT }} \
|
||||
--unrar "{{ CATALOG_UNRAR }}" \
|
||||
--game-id "{{ GAME_ID }}"
|
||||
|
||||
frontend-test:
|
||||
cd crates/lanspread-tauri-deno-ts && deno test --unstable-sloppy-imports tests
|
||||
|
||||
Reference in New Issue
Block a user