Merge pull request #44 from mwisnowski/fix/github-action-module-path

Fix/GitHub action module path
This commit is contained in:
mwisnowski 2025-10-17 17:13:11 -07:00 committed by GitHub
commit 49eabce19d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 63 additions and 7 deletions

View file

@ -86,7 +86,7 @@ jobs:
- name: Build all_cards.parquet (needed for similarity cache, but not committed) - name: Build all_cards.parquet (needed for similarity cache, but not committed)
if: steps.check_cache.outputs.needs_build == 'true' if: steps.check_cache.outputs.needs_build == 'true'
run: | run: |
python -c "from code.web.services.card_loader import CardCatalogLoader; loader = CardCatalogLoader(); df = loader.load(); print(f'Created all_cards.parquet with {len(df):,} cards')" python -c "from code.file_setup.card_aggregator import CardAggregator; agg = CardAggregator(); stats = agg.aggregate_all('csv_files', 'card_files/all_cards.parquet'); print(f'Created all_cards.parquet with {stats[\"total_cards\"]:,} cards')"
- name: Build similarity cache (Parquet) - name: Build similarity cache (Parquet)
if: steps.check_cache.outputs.needs_build == 'true' if: steps.check_cache.outputs.needs_build == 'true'
@ -145,12 +145,30 @@ jobs:
git config --local user.email "github-actions[bot]@users.noreply.github.com" git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]" git config --local user.name "github-actions[bot]"
# Switch to or create dedicated cache branch # Fetch all branches
git checkout -b similarity-cache-data || git checkout similarity-cache-data git fetch origin
# Add only the similarity cache files (not all_cards.parquet) # Try to checkout existing branch, or create new orphan branch
git add card_files/similarity_cache.parquet if git ls-remote --heads origin similarity-cache-data | grep similarity-cache-data; then
git add card_files/similarity_cache_metadata.json echo "Checking out existing similarity-cache-data branch..."
git checkout similarity-cache-data
else
echo "Creating new orphan branch similarity-cache-data..."
git checkout --orphan similarity-cache-data
git rm -rf . || true
# Create minimal README for the branch
echo "# Similarity Cache Data" > README.md
echo "This branch contains pre-built similarity cache files for the MTG Deckbuilder." >> README.md
echo "Updated automatically by GitHub Actions." >> README.md
fi
# Ensure card_files directory exists
mkdir -p card_files
# Add only the similarity cache files (use -f to override .gitignore)
git add -f card_files/similarity_cache.parquet
git add -f card_files/similarity_cache_metadata.json
git add README.md 2>/dev/null || true
# Check if there are changes to commit # Check if there are changes to commit
if git diff --staged --quiet; then if git diff --staged --quiet; then

View file

@ -7,15 +7,53 @@ on:
workflow_dispatch: workflow_dispatch:
jobs: jobs:
check-cache-age:
name: Check similarity cache age
runs-on: ubuntu-latest
outputs:
needs_rebuild: ${{ steps.check.outputs.needs_rebuild }}
steps:
- name: Check cache age
id: check
run: |
# Check if cache is older than 7 days
CACHE_URL="https://raw.githubusercontent.com/${{ github.repository }}/similarity-cache-data/card_files/similarity_cache_metadata.json"
if wget -q --spider "$CACHE_URL"; then
wget -q "$CACHE_URL" -O metadata.json
BUILD_DATE=$(jq -r '.build_date' metadata.json)
# Calculate age in seconds
BUILD_EPOCH=$(date -d "$BUILD_DATE" +%s 2>/dev/null || echo 0)
NOW_EPOCH=$(date +%s)
AGE_DAYS=$(( ($NOW_EPOCH - $BUILD_EPOCH) / 86400 ))
echo "Cache age: $AGE_DAYS days"
if [ $AGE_DAYS -gt 7 ]; then
echo "needs_rebuild=true" >> $GITHUB_OUTPUT
echo "Cache is stale (>7 days), will rebuild"
else
echo "needs_rebuild=false" >> $GITHUB_OUTPUT
echo "Cache is fresh (<7 days), skipping rebuild"
fi
else
echo "needs_rebuild=true" >> $GITHUB_OUTPUT
echo "Cache not found, will build"
fi
build-cache: build-cache:
name: Build similarity cache name: Build similarity cache
needs: check-cache-age
if: needs.check-cache-age.outputs.needs_rebuild == 'true'
uses: ./.github/workflows/build-similarity-cache.yml uses: ./.github/workflows/build-similarity-cache.yml
secrets: inherit secrets: inherit
prepare: prepare:
name: Prepare metadata name: Prepare metadata
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build-cache needs: [check-cache-age, build-cache]
if: always() && (needs.build-cache.result == 'success' || needs.build-cache.result == 'skipped')
permissions: permissions:
contents: read contents: read
outputs: outputs: