Skip to content

Make Flu Forecast Submission #1

Make Flu Forecast Submission

Make Flu Forecast Submission #1

name: Schedule Flu Forecast Submission
on:
schedule:
# Every Wednesday at 6pm CET (17:00 UTC)
- cron: '0 17 * * 3'
workflow_dispatch: # Allow manual triggering
jobs:
submit-forecast:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install requests pandas numpy
- name: Run flu forecasting script
run: python flu/run-flu-forecasts.py
env:
PYTHONPATH: ${{ github.workspace }}/2024-25
- name: Fork and clone target repository
run: |
# Install GitHub CLI
gh auth login --with-token <<< "${{ secrets.GITHUB_TOKEN }}"
# Fork the repository (if not already forked)
gh repo fork cdcepi/FluSight-forecast-hub --clone=true
# Navigate to the forked repo
cd FluSight-forecast-hub
- name: Copy forecast files
run: |
# Create target directory if it doesn't exist
mkdir -p model-output/metac-cp
# Copy new forecasts
cp -r ../submissions/* model-output/metac-cp/
- name: Create Pull Request
run: |
cd rsv-forecast-hub
# Setup git config
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
# Create a new branch
BRANCH_NAME="flu-forecast-update-$(date +%Y%m%d)"
git checkout -b $BRANCH_NAME
# Add and commit changes
git add model-output/metac-cp/
git commit -m "Update flu forecasts $(date +%Y-%m-%d)"
# Push to fork
git push origin $BRANCH_NAME
# Create PR
gh pr create \
--title "Update flu forecasts $(date +%Y-%m-%d)" \
--body "Automated flu forecast submission from Metaculus" \
--repo cdcepi/FluSight-forecast-hub \
--base main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}