Weekly FPL Update #8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Weekly FPL Update | |
| on: | |
| schedule: | |
| - cron: '0 2 * * 3' | |
| workflow_dispatch: | |
| jobs: | |
| weekly-update: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| issues: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| cache-dependency-path: flask-api/requirements.txt | |
| - name: Verify database secrets | |
| run: | | |
| if [ -z "${{ secrets.DB_HOST }}" ]; then | |
| echo "Error: DB_HOST secret is not set" | |
| exit 1 | |
| fi | |
| if [ -z "${{ secrets.DB_PASSWORD }}" ]; then | |
| echo "Error: DB_PASSWORD secret is not set" | |
| exit 1 | |
| fi | |
| echo "Database secrets are configured" | |
| - name: Install Flask API dependencies | |
| working-directory: flask-api | |
| run: pip install -r requirements.txt | |
| - name: Install LLM Service dependencies | |
| working-directory: llm-service | |
| run: pip install -r requirements-docker.txt | |
| - name: Ingest FPL player data | |
| working-directory: flask-api | |
| env: | |
| DB_HOST: ${{ secrets.DB_HOST }} | |
| DB_USER: ${{ secrets.DB_USER }} | |
| DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
| DB_NAME: ${{ secrets.DB_NAME }} | |
| DB_PORT: ${{ secrets.DB_PORT }} | |
| run: | | |
| echo "Ingesting FPL player data..." | |
| python scripts/ingest_elo_and_fpl.py | |
| - name: Retrain ML model | |
| working-directory: flask-api | |
| env: | |
| DB_HOST: ${{ secrets.DB_HOST }} | |
| DB_USER: ${{ secrets.DB_USER }} | |
| DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
| DB_NAME: ${{ secrets.DB_NAME }} | |
| DB_PORT: ${{ secrets.DB_PORT }} | |
| run: | | |
| echo "Retraining ML model..." | |
| python train_model.py | |
| - name: Scrape latest FPL articles | |
| working-directory: llm-service/scraper | |
| env: | |
| DB_HOST: ${{ secrets.DB_HOST }} | |
| DB_USER: ${{ secrets.DB_USER }} | |
| DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
| DB_NAME: ${{ secrets.DB_NAME }} | |
| DB_PORT: ${{ secrets.DB_PORT }} | |
| run: | | |
| echo "Scraping latest FPL articles..." | |
| python weekly_scraper.py --max-articles 20 | |
| - name: Update vector database | |
| working-directory: llm-service | |
| env: | |
| DB_HOST: ${{ secrets.DB_HOST }} | |
| DB_USER: ${{ secrets.DB_USER }} | |
| DB_PASSWORD: ${{ secrets.DB_PASSWORD }} | |
| DB_NAME: ${{ secrets.DB_NAME }} | |
| DB_PORT: ${{ secrets.DB_PORT }} | |
| run: | | |
| echo "Updating vector database..." | |
| python tests/test_ingestion.py | |
| - name: Notify on failure | |
| if: failure() | |
| uses: actions/github-script@v7 | |
| continue-on-error: true | |
| with: | |
| script: | | |
| await github.rest.issues.create({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| title: 'Weekly FPL Update Failed', | |
| body: 'The scheduled weekly FPL update failed. Check the workflow logs.' | |
| }); |