Skip to content

Update Wrapped Data #22

Update Wrapped Data

Update Wrapped Data #22

name: Update Wrapped Data
on:
schedule:
- cron: '0 6 * * 1' # Every Monday at 6 AM UTC
workflow_dispatch:
permissions:
contents: write
jobs:
enrich-images:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm ci
- name: Enrich wrapped images from Spotify API
run: node scripts/enrich-wrapped-images.mjs
env:
SPOTIFY_CLIENT_ID: ${{ secrets.SPOTIFY_CLIENT_ID }}
SPOTIFY_CLIENT_SECRET: ${{ secrets.SPOTIFY_CLIENT_SECRET }}
SPOTIFY_REFRESH_TOKEN: ${{ secrets.SPOTIFY_REFRESH_TOKEN }}
- name: Commit and push if changed
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add src/data/wrapped/
if ! git diff --cached --quiet; then
git commit -m "chore: backfill wrapped images $(date +%Y-%m-%d)"
git pull --rebase
git push
fi
update:
needs: enrich-images
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.PORTFOLIO_PAT }}
- uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm ci
- name: Fetch current year Spotify data
run: node scripts/fetch-wrapped.mjs
env:
SPOTIFY_CLIENT_ID: ${{ secrets.SPOTIFY_CLIENT_ID }}
SPOTIFY_CLIENT_SECRET: ${{ secrets.SPOTIFY_CLIENT_SECRET }}
SPOTIFY_REFRESH_TOKEN: ${{ secrets.SPOTIFY_REFRESH_TOKEN }}
- name: Build site
run: npm run build
- name: Commit and push if changed
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add src/data/wrapped/
if ! git diff --cached --quiet; then
git commit -m "chore: update wrapped data $(date +%Y-%m-%d)"
git pull --rebase
git push
fi