Skip to content

Commit 6570de0

Browse files
committed
chore: add leaderboard scheduler workflow for calculating next country leaderboard
1 parent 00c7205 commit 6570de0

1 file changed

Lines changed: 59 additions & 0 deletions

File tree

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Leaderboard Scheduler
2+
3+
on:
4+
schedule:
5+
- cron: "0 17 * * *"
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: leaderboard-scheduler
13+
cancel-in-progress: false
14+
15+
jobs:
16+
calculate-next-country:
17+
name: Calculate next country leaderboard
18+
runs-on: ubuntu-latest
19+
timeout-minutes: 30
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN_DEVIMPACT }}
22+
DATABASE_URL: ${{ secrets.DATABASE_URL }}
23+
LEADERBOARD_SOURCE_URL_TEMPLATE: ${{ vars.LEADERBOARD_SOURCE_URL_TEMPLATE || 'https://raw.githubusercontent.com/ashkulz/committers.top/gh-pages/_data/locations/{country}.yml' }}
24+
GITHUB_REPO_COUNT: ${{ vars.GITHUB_REPO_COUNT || '50' }}
25+
GITHUB_PR_COUNT: ${{ vars.GITHUB_PR_COUNT || '300' }}
26+
GITHUB_ISSUE_COUNT: ${{ vars.GITHUB_ISSUE_COUNT || '100' }}
27+
GITHUB_DISCUSSION_COUNT: ${{ vars.GITHUB_DISCUSSION_COUNT || '50' }}
28+
REDIS_URL: ${{ secrets.REDIS_URL }}
29+
REDIS_ENABLED: ${{ vars.REDIS_ENABLED || 'false' }}
30+
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }}
31+
REDIS_CACHE_NAMESPACE: ${{ vars.REDIS_CACHE_NAMESPACE || 'devimpact:v1' }}
32+
REDIS_CACHE_TTL_SECONDS: ${{ vars.REDIS_CACHE_TTL_SECONDS || '604800' }}
33+
REDIS_CONNECT_TIMEOUT_MS: ${{ vars.REDIS_CONNECT_TIMEOUT_MS || '1500' }}
34+
LEADERBOARD_SEED_LIMIT: ${{ vars.LEADERBOARD_SEED_LIMIT || '256' }}
35+
LEADERBOARD_REFRESH_LIMIT: ${{ vars.LEADERBOARD_REFRESH_LIMIT || '500' }}
36+
LEADERBOARD_USER_STALE_DAYS: ${{ vars.LEADERBOARD_USER_STALE_DAYS || '30' }}
37+
GITHUB_USER_STALE_DAYS: ${{ vars.GITHUB_USER_STALE_DAYS || '14' }}
38+
39+
steps:
40+
- name: Checkout
41+
uses: actions/checkout@v4
42+
43+
- name: Setup pnpm
44+
uses: pnpm/action-setup@v4
45+
with:
46+
version: 10.29.2
47+
run_install: false
48+
49+
- name: Setup Node.js
50+
uses: actions/setup-node@v4
51+
with:
52+
node-version: 24.x
53+
cache: pnpm
54+
55+
- name: Install dependencies
56+
run: pnpm install --frozen-lockfile
57+
58+
- name: Calculate next country
59+
run: pnpm leaderboard:calculate

0 commit comments

Comments
 (0)