Skip to content

fix: use staged production deployments in Vercel workflow#1722

Merged
amikofalvy merged 1 commit intomainfrom
fix/vercel-staged-production
Feb 5, 2026
Merged

fix: use staged production deployments in Vercel workflow#1722
amikofalvy merged 1 commit intomainfrom
fix/vercel-staged-production

Conversation

@amikofalvy
Copy link
Collaborator

Summary

  • Deploy with --prod --skip-domain to create staged production builds
  • This ensures production env vars are used during build
  • Promotion is instant (no rebuild) since deployment is already production
  • Add --yes flag to auto-confirm prompts in CI environment

Context

Previous workflow deployed as preview, then vercel promote prompted:

? This deployment is not a production deployment and cannot be directly
promoted. A new deployment will be built using your production environment.

Failed run: https://github.com/inkeep/agents/actions/runs/21695364617/job/62564332587

Benefits

  • What you test is exactly what goes to production (same build)
  • No double-build (faster deployments)
  • Health checks run against production env vars

Test plan

  • Re-run the Vercel production deployment workflow after merge

- Deploy with --prod --skip-domain to create staged production builds
- This ensures production env vars are used and avoids rebuild on promote
- Add --yes flag to auto-confirm prompts in CI environment
- Fixes issue where promoting preview deployments triggered interactive prompt
@changeset-bot
Copy link

changeset-bot bot commented Feb 5, 2026

⚠️ No Changeset found

Latest commit: 065631b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel
Copy link

vercel bot commented Feb 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agents-api Ready Ready Preview, Comment Feb 5, 2026 1:50am
agents-docs Ready Ready Preview, Comment Feb 5, 2026 1:50am
agents-manage-ui Ready Ready Preview, Comment Feb 5, 2026 1:50am

Request Review

@amikofalvy amikofalvy merged commit c90799a into main Feb 5, 2026
5 of 8 checks passed
@amikofalvy amikofalvy deleted the fix/vercel-staged-production branch February 5, 2026 01:48
@claude
Copy link
Contributor

claude bot commented Feb 5, 2026

Claude finished @amikofalvy's task in 55s —— View job


PR Review Summary

0 Key Findings | Risk: Low

Review Notes

This is a well-scoped CI infrastructure fix that addresses a real failure in the Vercel production deployment workflow. The changes are minimal and focused:

Change Before After Rationale
Deploy command vercel deploy (preview) vercel deploy --prod --skip-domain (staged prod) Uses production env vars, avoids rebuild on promote
Promote command No --yes flag Added --yes flag Auto-confirms in CI to avoid interactive prompt failure
Comments Described preview → promote flow Describes staged production flow Accurate documentation of new behavior

Benefits of the new approach:

  • ✅ Production environment variables are used during build
  • ✅ Promotion is instant (no rebuild needed)
  • ✅ What you test is exactly what goes to production
  • ✅ Avoids interactive prompts that break CI

✅ APPROVE

Summary: Clean, targeted fix for a CI workflow failure. The staged production deployment pattern is the correct approach for Vercel deployments with health checks, and the implementation follows Vercel CLI best practices.

Other Findings (0)

Discarded as invalid or not applicable

Location Issue Reason Excluded
N/A No issues identified This is a straightforward, well-implemented CI fix

dimaMachina pushed a commit that referenced this pull request Feb 5, 2026
- Deploy with --prod --skip-domain to create staged production builds
- This ensures production env vars are used and avoids rebuild on promote
- Add --yes flag to auto-confirm prompts in CI environment
- Fixes issue where promoting preview deployments triggered interactive prompt
dimaMachina added a commit that referenced this pull request Feb 5, 2026
…chat or if custom headers are invalid (#1699)

* upd

* upd

* upd

* upd

* upd

* upd

* upd

* typecheck is ok now

* wip custom headers dialog

* upddd

* upddd

* upddd

* brand color

* upd

* validate on mount

* polish

* fix lint

* format

* review fixes

* feat(pr-review): add clickable links to inline comments in review summary (#1714)

- Add `url` field to GraphQL queries for review threads and PR comments
- Add Phase 5.4 to capture inline comment URLs after posting
- Update Point-Fix Edits section to include clickable links
- Update Pending Recommendations to use URLs from pr-context skill
- Add `gh api` to allowed tools for fetching comment URLs
- Add secure debug artifact uploads for Claude review runs

* Revert "fix(agents-core): remove refine call in resource id schema (#1689)" (#1691)

This reverts commit 938ffb8.

* fix: pin claude-code-action to SDK 0.2.25 to avoid AJV crash (#1716)

SDK versions 0.2.27+ have a bug causing AJV validation crashes
before any API calls are made. This affects all PR reviews.

Tracking issue: anthropics/claude-code-action#892
Related: #852, #880, #804

Will revert to @v1 when the upstream issue is resolved.

* bump zod to latest 4.3.6 and fix `.omit() cannot be used on object schemas containing refinements` error (#1712)

* Revert "fix(agents-core): remove refine call in resource id schema (#1689)"

This reverts commit 938ffb8.

* Revert "fix(agents-core): remove refine call in resource id schema (#1689)"

This reverts commit 938ffb8.

* bump

* upd

* remove zod from pnpm overrides

* update zod peerdependencies too, and we have error reproducible locally

* minimal fix

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* Version Packages (#1701)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: add Vercel production deployment workflow (#1679)

* feat: add Vercel production deployment workflow

Add GitHub Actions workflow to deploy to Vercel production only when
a GitHub release is published. This integrates with the existing
changesets release flow.

* feat: add deployment checks before promoting to production

Deploy to preview URL first, wait for Vercel deployment checks to pass,
then promote to production. This ensures API health before going live.

* PRD for vercel deployment strategy

* docs: add Vercel staging/production deployment strategy documentation

- Document Production Branch configuration (set to '_disabled_')
- Document GitHub Actions workflow for release-triggered deployments
- Document required secrets (VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID)
- Document optional staging domain configuration
- Add deployment flow diagram and troubleshooting section
- Add secrets documentation comments to workflow file

Completes US-001, US-002, US-003, US-004 from vercel-deployment-strategy PRD.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: update Vercel staging/production strategy to use never-deploy branch

Replace _disabled_ approach (which Vercel doesn't support) with a
never-deploy orphan branch. Update staging domain examples to use
api-staging.agents.yourdomain.com pattern.

* Apply suggestion from @claude[bot]

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* revert: remove Vercel deployment docs changes and PRD

Revert vercel.mdx to main branch version and remove the PRD file.

* feat: deploy both agents-api and agents-manage-ui to Vercel

Update production workflow to deploy both projects in parallel using a
matrix strategy. Each project uses its own secret for the Vercel project ID.

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* remove cursor specific rules in favor or skills and agents.md (#1717)

* chore: trigger release for all packages (#1718)

No-op patch bumps to trigger a new release.

* Version Packages (#1719)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* updating release action (#1720)

* fix: add --scope flag to Vercel CLI commands in production workflow (#1721)

The vercel inspect and promote commands were failing with authorization
errors because VERCEL_ORG_ID as an environment variable isn't used by
the CLI for scope resolution - it requires the --scope flag explicitly.

* fix: use staged production deployments in Vercel workflow (#1722)

- Deploy with --prod --skip-domain to create staged production builds
- This ensures production env vars are used and avoids rebuild on promote
- Add --yes flag to auto-confirm prompts in CI environment
- Fixes issue where promoting preview deployments triggered interactive prompt

* fix: add --archive=tgz to prevent CLI hanging during deploy (#1724)

Large file uploads can cause the Vercel CLI to hang. The --archive=tgz
flag compresses files before upload which resolves this issue.

* fix: use repository variables instead of secrets for non-sensitive values (#1723)

Move TURBO_TEAM and VERCEL_ORG_ID from secrets to vars to prevent
GitHub Actions from masking these values in logs. Secret values are
automatically masked, which was causing "inkeep" to appear as "***"
throughout CI logs.

* fix: simplify Vercel workflow to use direct production deploy (#1725)

- Remove --skip-domain flag which was causing CLI to hang
- Remove separate promote step (--prod auto-assigns domains)
- Simpler, more reliable workflow

* fix: use secrets for VERCEL_ORG_ID (#1726)

* apply review

* pnpm i

* polish

* format

* Rename convert-json-schema-to-zod.ts to convert-json-schema-to-zod.test.ts

* add tests

* wip tests

* wip tests

* wip tests

* upd

* upd

* upd

* upd

* polish error names

* upd

* move to __tests__

* format

* chore: add changeset for custom headers validation feature

Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com>

---------

Co-authored-by: Nick Gomez <122398915+nick-inkeep@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrew Mikofalvy <5668128+amikofalvy@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com>
dimaMachina added a commit that referenced this pull request Feb 5, 2026
…fromJSONSchema()` method (#1735)

* upd

* upd

* upd

* upd

* upd

* upd

* upd

* typecheck is ok now

* wip custom headers dialog

* upddd

* upddd

* upddd

* brand color

* upd

* validate on mount

* polish

* fix lint

* format

* review fixes

* feat(pr-review): add clickable links to inline comments in review summary (#1714)

- Add `url` field to GraphQL queries for review threads and PR comments
- Add Phase 5.4 to capture inline comment URLs after posting
- Update Point-Fix Edits section to include clickable links
- Update Pending Recommendations to use URLs from pr-context skill
- Add `gh api` to allowed tools for fetching comment URLs
- Add secure debug artifact uploads for Claude review runs

* Revert "fix(agents-core): remove refine call in resource id schema (#1689)" (#1691)

This reverts commit 938ffb8.

* fix: pin claude-code-action to SDK 0.2.25 to avoid AJV crash (#1716)

SDK versions 0.2.27+ have a bug causing AJV validation crashes
before any API calls are made. This affects all PR reviews.

Tracking issue: anthropics/claude-code-action#892
Related: #852, #880, #804

Will revert to @v1 when the upstream issue is resolved.

* bump zod to latest 4.3.6 and fix `.omit() cannot be used on object schemas containing refinements` error (#1712)

* Revert "fix(agents-core): remove refine call in resource id schema (#1689)"

This reverts commit 938ffb8.

* Revert "fix(agents-core): remove refine call in resource id schema (#1689)"

This reverts commit 938ffb8.

* bump

* upd

* remove zod from pnpm overrides

* update zod peerdependencies too, and we have error reproducible locally

* minimal fix

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* rm unrelated changes

* Version Packages (#1701)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* feat: add Vercel production deployment workflow (#1679)

* feat: add Vercel production deployment workflow

Add GitHub Actions workflow to deploy to Vercel production only when
a GitHub release is published. This integrates with the existing
changesets release flow.

* feat: add deployment checks before promoting to production

Deploy to preview URL first, wait for Vercel deployment checks to pass,
then promote to production. This ensures API health before going live.

* PRD for vercel deployment strategy

* docs: add Vercel staging/production deployment strategy documentation

- Document Production Branch configuration (set to '_disabled_')
- Document GitHub Actions workflow for release-triggered deployments
- Document required secrets (VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID)
- Document optional staging domain configuration
- Add deployment flow diagram and troubleshooting section
- Add secrets documentation comments to workflow file

Completes US-001, US-002, US-003, US-004 from vercel-deployment-strategy PRD.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: update Vercel staging/production strategy to use never-deploy branch

Replace _disabled_ approach (which Vercel doesn't support) with a
never-deploy orphan branch. Update staging domain examples to use
api-staging.agents.yourdomain.com pattern.

* Apply suggestion from @claude[bot]

Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* revert: remove Vercel deployment docs changes and PRD

Revert vercel.mdx to main branch version and remove the PRD file.

* feat: deploy both agents-api and agents-manage-ui to Vercel

Update production workflow to deploy both projects in parallel using a
matrix strategy. Each project uses its own secret for the Vercel project ID.

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>

* remove cursor specific rules in favor or skills and agents.md (#1717)

* chore: trigger release for all packages (#1718)

No-op patch bumps to trigger a new release.

* Version Packages (#1719)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>

* updating release action (#1720)

* fix: add --scope flag to Vercel CLI commands in production workflow (#1721)

The vercel inspect and promote commands were failing with authorization
errors because VERCEL_ORG_ID as an environment variable isn't used by
the CLI for scope resolution - it requires the --scope flag explicitly.

* fix: use staged production deployments in Vercel workflow (#1722)

- Deploy with --prod --skip-domain to create staged production builds
- This ensures production env vars are used and avoids rebuild on promote
- Add --yes flag to auto-confirm prompts in CI environment
- Fixes issue where promoting preview deployments triggered interactive prompt

* fix: add --archive=tgz to prevent CLI hanging during deploy (#1724)

Large file uploads can cause the Vercel CLI to hang. The --archive=tgz
flag compresses files before upload which resolves this issue.

* fix: use repository variables instead of secrets for non-sensitive values (#1723)

Move TURBO_TEAM and VERCEL_ORG_ID from secrets to vars to prevent
GitHub Actions from masking these values in logs. Secret values are
automatically masked, which was causing "inkeep" to appear as "***"
throughout CI logs.

* fix: simplify Vercel workflow to use direct production deploy (#1725)

- Remove --skip-domain flag which was causing CLI to hang
- Remove separate promote step (--prod auto-assigns domains)
- Simpler, more reliable workflow

* fix: use secrets for VERCEL_ORG_ID (#1726)

* apply review

* pnpm i

* polish

* format

* Rename convert-json-schema-to-zod.ts to convert-json-schema-to-zod.test.ts

* add tests

* wip tests

* wip tests

* wip tests

* upd

* upd

* upd

* upd

* polish error names

* upd

* move to __tests__

* rm jsonSchemaToZod

* rm jsonSchemaToZod

* rm jsonSchemaToZod

* rm jsonSchemaToZod

* format

* chore: add changeset for custom headers validation feature

Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com>

* chore: add changeset for jsonSchemaToZod removal

Replace custom implementation with Zod's native z.fromJSONSchema() method

Co-authored-by: Dimitri POSTOLOV <dimaMachina@users.noreply.github.com>

* fix lint

* Update validation.test.ts

---------

Co-authored-by: Nick Gomez <122398915+nick-inkeep@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrew Mikofalvy <5668128+amikofalvy@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Dimitri POSTOLOV <undefined@users.noreply.github.com>
Co-authored-by: Dimitri POSTOLOV <dimaMachina@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Comments