Skip to content

Sync Activities (Turso) #34

Sync Activities (Turso)

Sync Activities (Turso) #34

Workflow file for this run

name: Sync Activities (Turso)
on:
schedule:
- cron: '0 0 * * *' # Daily at 00:00 UTC (Beijing 08:00)
workflow_dispatch:
permissions:
contents: read
concurrency:
group: sync-activities-turso
cancel-in-progress: false
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Install Playwright browsers
run: bunx playwright install chromium --with-deps
- name: Validate Turso configuration
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
DATABASE_AUTH_TOKEN: ${{ secrets.DATABASE_AUTH_TOKEN }}
run: |
if [ -z "$DATABASE_URL" ]; then
echo "Missing secret: DATABASE_URL"
exit 1
fi
if [ -z "$DATABASE_AUTH_TOKEN" ]; then
echo "Missing secret: DATABASE_AUTH_TOKEN"
exit 1
fi
echo "✓ Turso secrets are configured"
- name: Run sync script (writes to Turso)
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
DATABASE_AUTH_TOKEN: ${{ secrets.DATABASE_AUTH_TOKEN }}
STRAVA_CLIENT_ID: ${{ secrets.STRAVA_CLIENT_ID }}
STRAVA_CLIENT_SECRET: ${{ secrets.STRAVA_CLIENT_SECRET }}
STRAVA_REFRESH_TOKEN: ${{ secrets.STRAVA_REFRESH_TOKEN }}
# Optional: Nike Run Club
NIKE_ACCESS_TOKEN: ${{ secrets.NIKE_ACCESS_TOKEN }}
NIKE_REFRESH_TOKEN: ${{ secrets.NIKE_REFRESH_TOKEN }}
run: bun run sync