Skip to content

Sync Limitless Tournament Data #6

Sync Limitless Tournament Data

Sync Limitless Tournament Data #6

name: Sync Limitless Tournament Data
on:
schedule:
# Run every Tuesday and Friday at midnight UTC
- cron: '0 0 * * 2,5'
workflow_dispatch:
# Allow manual trigger from GitHub Actions UI
inputs:
since_date:
description: 'Sync tournaments since date (YYYY-MM-DD). Leave empty for incremental.'
required: false
type: string
dry_run:
description: 'Dry run (preview only, no changes)'
required: false
default: false
type: boolean
classify:
description: 'Auto-classify UNKNOWN decklists after sync'
required: false
default: true
type: boolean
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: pip install psycopg2-binary python-dotenv requests
- name: Sync Limitless data (incremental)
if: ${{ inputs.since_date == '' && inputs.dry_run != true }}
run: python scripts/sync_limitless.py --all-tier1 --incremental --classify
env:
NEON_HOST: ${{ secrets.NEON_HOST }}
NEON_DATABASE: ${{ secrets.NEON_DATABASE }}
NEON_USER: ${{ secrets.NEON_USER }}
NEON_PASSWORD: ${{ secrets.NEON_PASSWORD }}
- name: Sync Limitless data (specific date)
if: ${{ inputs.since_date != '' && inputs.dry_run != true }}
run: |
CLASSIFY_FLAG=""
if [ "${{ inputs.classify }}" = "true" ]; then
CLASSIFY_FLAG="--classify"
fi
python scripts/sync_limitless.py --all-tier1 --since ${{ inputs.since_date }} $CLASSIFY_FLAG
env:
NEON_HOST: ${{ secrets.NEON_HOST }}
NEON_DATABASE: ${{ secrets.NEON_DATABASE }}
NEON_USER: ${{ secrets.NEON_USER }}
NEON_PASSWORD: ${{ secrets.NEON_PASSWORD }}
- name: Sync Limitless data (dry run)
if: ${{ inputs.dry_run == true }}
run: |
SINCE_FLAG="--incremental"
if [ "${{ inputs.since_date }}" != "" ]; then
SINCE_FLAG="--since ${{ inputs.since_date }}"
fi
python scripts/sync_limitless.py --all-tier1 $SINCE_FLAG --dry-run
env:
NEON_HOST: ${{ secrets.NEON_HOST }}
NEON_DATABASE: ${{ secrets.NEON_DATABASE }}
NEON_USER: ${{ secrets.NEON_USER }}
NEON_PASSWORD: ${{ secrets.NEON_PASSWORD }}