This folder contains GitHub Actions workflows for automation.
- Schedule: Daily at 2 AM UTC (9 PM EST)
- Purpose: Sync energy data from Eniscope to Neon
- Duration: ~5 minutes
- Triggers: Schedule + manual
- Schedule: Every Monday at 8 AM UTC (3 AM EST)
- Purpose: Generate customer-ready reports
- Duration: ~10 minutes
- Outputs: HTML + JSON reports (artifacts)
- Triggers: Schedule + manual
- Schedule: Every 6 hours + on code changes
- Purpose: Data quality monitoring
- Duration: ~3 minutes
- Triggers: Schedule + push to main + manual
- Alert: Creates GitHub issue on failure
Before workflows can run, configure GitHub Secrets:
Navigate to: Settings → Secrets and variables → Actions
Add these 4 secrets:
DATABASE_URL- Your Neon connection stringVITE_ENISCOPE_API_KEY- Eniscope API keyVITE_ENISCOPE_EMAIL- Eniscope account emailVITE_ENISCOPE_PASSWORD- Eniscope account password
Get values from your local .env file (never commit .env!)
Via GitHub UI:
- Go to:
Actionstab - Select workflow
- Click "Run workflow"
- Choose branch (usually
main) - Click "Run workflow"
Via GitHub CLI:
gh workflow run daily-sync.yml
gh workflow run weekly-report.yml
gh workflow run data-validation.ymlCheck workflow status:
gh run list --limit 10
# View specific run
gh run view <run-id>
# Download artifacts
gh run download <run-id>Email notifications:
Settings → Notifications → GitHub Actions
- ☑️ Send notifications for failed workflow runs
"Workflow failed" → Check logs in Actions tab → Verify secrets are configured → Test command locally first
"No artifacts found" → Check workflow completed successfully → Artifacts expire after 30-90 days → Download immediately after generation
"Rate limit exceeded" → Eniscope API has rate limits → Workflows include 1s delays → Check if multiple workflows running simultaneously
For detailed documentation, see: GITHUB_GUIDE.md