48 lines
1.2 KiB
YAML
48 lines
1.2 KiB
YAML
name: Hourly Energy Data Sync
|
|
|
|
on:
|
|
schedule:
|
|
# Run every hour at minute 5 (to avoid peak times)
|
|
- cron: "5 * * * *"
|
|
workflow_dispatch: # Allow manual triggering
|
|
|
|
jobs:
|
|
sync-energy-data:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Install uv
|
|
run: |
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
echo "$HOME/.cargo/bin" >> $GITHUB_PATH
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
uv sync
|
|
|
|
- name: Run incremental sync
|
|
env:
|
|
ELOVERBLIK_API_TOKEN: ${{ secrets.ELOVERBLIK_API_TOKEN }}
|
|
DB_HOST: ${{ secrets.DB_HOST }}
|
|
DB_NAME: ${{ secrets.DB_NAME }}
|
|
DB_USER: ${{ secrets.DB_USER }}
|
|
DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
|
|
DB_PORT: ${{ secrets.DB_PORT }}
|
|
run: |
|
|
uv run energy-ingester sync-incremental --verbose
|
|
|
|
- name: Notify on failure
|
|
if: failure()
|
|
run: |
|
|
echo "Energy data sync failed! Check logs and database connectivity."
|
|
# Add notification logic here (email, Slack, etc.)
|
|
exit 1
|