Summary
Set up GitHub Actions deployment pipeline (same as Dropcast) and Vercel cron jobs. Do NOT use Vercel's auto-deploy — it requires adding team members for PRs from different GitHub accounts.
Steps
1. Create deploy workflow
Reference: ~/Projects/dropcast/.github/workflows/deploy-production.yml
Create .github/workflows/deploy-production.yml:
- Trigger on push to
main + manual dispatch
- Concurrency group:
production-deploy (no cancel-in-progress)
- Steps: checkout → setup Node 20 → install
vercel@39 → pull env → build → deploy (prebuilt, prod)
- Uses secrets:
VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID
- Deploy summary in GitHub Actions output
- Change
github.repository check to realproject7/plotlink
2. Disable Vercel auto-deploy
OPERATOR: In Vercel project settings:
- Go to Settings → Git → Ignored Build Step
- Set command to
exit 0
- This prevents Vercel from building on push (Actions handles it)
- Cron jobs, domains, and other Vercel features still work
3. Create vercel.json
Add cron job for backfill:
{
"crons": [
{
"path": "/api/cron/backfill",
"schedule": "*/5 * * * *"
}
]
}
4. Operator: GitHub secrets
Add these to realproject7/plotlink repo settings → Secrets and variables → Actions:
VERCEL_TOKEN — from Vercel Settings → Tokens (personal access token)
VERCEL_ORG_ID — from .vercel/project.json after vercel link, or Vercel dashboard
VERCEL_PROJECT_ID — same source
5. Operator: Create GitHub environment
Create a production environment in repo Settings → Environments (the workflow references environment: production)
6. Verify cron authentication
Ensure the backfill cron endpoint checks CRON_SECRET:
- Vercel sends
Authorization: Bearer <CRON_SECRET> automatically for cron requests
- The endpoint should reject requests without valid auth
Acceptance Criteria
Branch
task/476-vercel-deploy in plotlink repo
Parent: #475
Summary
Set up GitHub Actions deployment pipeline (same as Dropcast) and Vercel cron jobs. Do NOT use Vercel's auto-deploy — it requires adding team members for PRs from different GitHub accounts.
Steps
1. Create deploy workflow
Reference:
~/Projects/dropcast/.github/workflows/deploy-production.ymlCreate
.github/workflows/deploy-production.yml:main+ manual dispatchproduction-deploy(no cancel-in-progress)vercel@39→ pull env → build → deploy (prebuilt, prod)VERCEL_TOKEN,VERCEL_ORG_ID,VERCEL_PROJECT_IDgithub.repositorycheck torealproject7/plotlink2. Disable Vercel auto-deploy
OPERATOR: In Vercel project settings:
exit 03. Create
vercel.jsonAdd cron job for backfill:
{ "crons": [ { "path": "/api/cron/backfill", "schedule": "*/5 * * * *" } ] }4. Operator: GitHub secrets
Add these to
realproject7/plotlinkrepo settings → Secrets and variables → Actions:VERCEL_TOKEN— from Vercel Settings → Tokens (personal access token)VERCEL_ORG_ID— from.vercel/project.jsonaftervercel link, or Vercel dashboardVERCEL_PROJECT_ID— same source5. Operator: Create GitHub environment
Create a
productionenvironment in repo Settings → Environments (the workflow referencesenvironment: production)6. Verify cron authentication
Ensure the backfill cron endpoint checks
CRON_SECRET:Authorization: Bearer <CRON_SECRET>automatically for cron requestsAcceptance Criteria
exit 0on Ignored Build Step)vercel.jsonwith cron config committedBranch
task/476-vercel-deployin plotlink repo