Skip to content

ci(mcp): trigger cloud-mcp-preview deploy after PyPI publish - #1050

Merged
Aaron ("AJ") Steers (aaronsteers) merged 6 commits into
mainfrom
devin/1782532058-cloud-mcp-deploy-trigger
Jul 22, 2026
Merged

ci(mcp): trigger cloud-mcp-preview deploy after PyPI publish#1050
Aaron ("AJ") Steers (aaronsteers) merged 6 commits into
mainfrom
devin/1782532058-cloud-mcp-deploy-trigger

Conversation

@aaronsteers

@aaronsteers Aaron ("AJ") Steers (aaronsteers) commented Jun 27, 2026

Copy link
Copy Markdown
Member

Summary

Auto-deploys the Cloud MCP Cloud Run service after PyAirbyte publishes to PyPI, with different targets based on release type:

  • Stable releases (release event) → deploy to production cloud-mcp service
  • Prereleases (workflow_dispatch with publish: true) → deploy to cloud-mcp-preview service

Both jobs wait 2 minutes for PyPI propagation, then send a repository_dispatch to airbytehq/airbyte-ops-mcp with event-type: deploy-cloud-mcp. The prerelease job includes "preview": "true" in the client payload to route to the preview service.

deploy_cloud_mcp:          # stable → production
  if: github.event_name == 'release'
  client-payload: '{"mcp-server": "cloud-mcp"}'

deploy_cloud_mcp_preview:  # prerelease → preview
  if: github.event_name == 'workflow_dispatch' && ...publish == 'true'
  client-payload: '{"mcp-server": "cloud-mcp", "preview": "true"}'

Companion to airbyte-ops-mcp#1001 which adds client_payload.preview support to the deploy workflow.

Link to Devin session: https://app.devin.ai/sessions/9274bd4f3e0a4b0880795fc1ef9c806b
Requested by: Aaron ("AJ") Steers (@aaronsteers)

Summary by CodeRabbit

  • New Features
    • Cloud MCP deployments now start automatically after successful PyPI releases.
    • Preview deployments can be triggered via manual publishing workflows when publish is enabled.
    • Deployment triggers include a short delay to ensure the package is available on PyPI.
    • Preview deployments are explicitly marked as preview during the deployment request.

Important

Auto-merge enabled.

This PR is set to merge automatically when all requirements are met.

After publishing to PyPI, wait 2 minutes for package availability then
dispatch the cloud-mcp deploy workflow on airbyte-ops-mcp via
repository_dispatch. This keeps the hosted Cloud MCP server in sync
with each PyAirbyte release.

Co-Authored-By: AJ Steers <aj@airbyte.io>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@github-actions

Copy link
Copy Markdown

👋 Greetings, Airbyte Team Member!

Here are some helpful tips and reminders for your convenience.

💡 Show Tips and Tricks

Testing This PyAirbyte Version

You can test this version of PyAirbyte using the following:

# Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1782532058-cloud-mcp-deploy-trigger' pyairbyte --help

# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1782532058-cloud-mcp-deploy-trigger'

PR Slash Commands

Airbyte Maintainers can execute the following slash commands on your PR:

  • /fix-pr - Fixes most formatting and linting issues
  • /uv-lock - Updates uv.lock file
  • /test-pr - Runs tests with the updated PyAirbyte
  • /prerelease - Builds and publishes a prerelease version to PyPI
📚 Show Repo Guidance

Helpful Resources

Community Support

Questions? Join the #pyairbyte channel in our Slack workspace.

📝 Edit this welcome message.

github-advanced-security[bot]

This comment was marked as resolved.

@coderabbitai

coderabbitai Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

The PyPI publish workflow adds a downstream job that waits 120 seconds after publishing, then dispatches a Cloud MCP preview deployment event for eligible release or manual publish runs.

Changes

Cloud MCP preview deployment

Layer / File(s) Summary
Preview publish dispatch
.github/workflows/pypi_publish.yml
deploy_cloud_mcp_preview runs after publish_to_pypi for published releases or manual runs with inputs.publish == true, waits 120 seconds, and sends a preview deploy-cloud-mcp dispatch to airbytehq/airbyte-ops-mcp.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant publish_to_pypi
  participant deploy_cloud_mcp_preview
  participant airbytehq/airbyte-ops-mcp

  publish_to_pypi->>deploy_cloud_mcp_preview: completes successfully
  deploy_cloud_mcp_preview->>deploy_cloud_mcp_preview: wait 120 seconds
  deploy_cloud_mcp_preview->>airbytehq/airbyte-ops-mcp: dispatch deploy-cloud-mcp with preview payload
Loading

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the new preview deployment trigger after PyPI publish.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch devin/1782532058-cloud-mcp-deploy-trigger

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

coderabbitai[bot]

This comment was marked as resolved.

Co-Authored-By: AJ Steers <aj@airbyte.io>
@github-code-quality

github-code-quality Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: Python

Python / code-coverage/pytest-fast

The overall coverage in commit 34c78d9 in the devin/1782532058-clo... branch is 67%. The coverage in commit d9f652f in the main branch is 65%.

Show a code coverage summary of the most impacted files.
File main d9f652f devin/1782532058-clo... 34c78d9 +/-
airbyte/_util/api_util.py 36% 37% +1%
airbyte/registry.py 70% 72% +2%
airbyte/mcp/_tool_utils.py 72% 77% +5%
airbyte/mcp/int...c_history_ui.py 0% 36% +36%
airbyte/mcp/int...hared_models.py 0% 81% +81%
airbyte/cloud/models.py 0% 91% +91%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%
airbyte/mcp/int...ive/__init__.py 0% 100% +100%
airbyte/mcp/int...tive/_prefab.py 0% 100% +100%

Python / code-coverage/pytest-no-creds

The overall coverage in commit 34c78d9 in the devin/1782532058-clo... branch is 67%. The coverage in commit d9f652f in the main branch is 65%.

Show a code coverage summary of the most impacted files.
File main d9f652f devin/1782532058-clo... 34c78d9 +/-
airbyte/_util/api_util.py 36% 37% +1%
airbyte/registry.py 70% 72% +2%
airbyte/mcp/_tool_utils.py 72% 77% +5%
airbyte/mcp/int...c_history_ui.py 0% 36% +36%
airbyte/mcp/int...hared_models.py 0% 81% +81%
airbyte/cloud/models.py 0% 91% +91%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%
airbyte/mcp/int...ive/__init__.py 0% 100% +100%
airbyte/mcp/int...tive/_prefab.py 0% 100% +100%

Python / code-coverage/pytest

The overall coverage in commit 34c78d9 in the devin/1782532058-clo... branch is 72%. The coverage in commit d9f652f in the main branch is 71%.

Show a code coverage summary of the most impacted files.
File main d9f652f devin/1782532058-clo... 34c78d9 +/-
airbyte/registry.py 70% 72% +2%
airbyte/mcp/_tool_utils.py 72% 77% +5%
airbyte/mcp/server.py 69% 76% +7%
airbyte/mcp/int...c_history_ui.py 0% 36% +36%
airbyte/mcp/int...hared_models.py 0% 81% +81%
airbyte/mcp/int..._registry_ui.py 0% 92% +92%
airbyte/cloud/models.py 0% 93% +93%
airbyte/mcp/int...nc_status_ui.py 0% 97% +97%
airbyte/mcp/int...ive/__init__.py 0% 100% +100%
airbyte/mcp/int...tive/_prefab.py 0% 100% +100%

Updated July 22, 2026 23:36 UTC

@aaronsteers
Aaron ("AJ") Steers (aaronsteers) marked this pull request as ready for review June 27, 2026 04:11
Copilot AI review requested due to automatic review settings June 27, 2026 04:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an automated post-PyPI-publish step to trigger a rebuild/deploy of the hosted Cloud MCP server, ensuring mcp.internal.airbyte.ai/cloud-mcp picks up the newly released airbyte package from PyPI.

Changes:

  • Introduces a new deploy_cloud_mcp job that runs after publish_to_pypi.
  • Waits briefly for PyPI availability, then triggers an airbytehq/airbyte-ops-mcp repository_dispatch event (deploy-cloud-mcp) with payload {"mcp-server":"cloud-mcp"}.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/pypi_publish.yml Outdated
Comment thread .github/workflows/pypi_publish.yml Outdated
Co-Authored-By: AJ Steers <aj@airbyte.io>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

Comment thread .github/workflows/pypi_publish.yml
Split deploy_cloud_mcp into two jobs:
- deploy_cloud_mcp: fires on release events, deploys to production
- deploy_cloud_mcp_preview: fires on workflow_dispatch prereleases,
  sends preview=true in client_payload to deploy to cloud-mcp-preview

Co-Authored-By: AJ Steers <aj@airbyte.io>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/pypi_publish.yml:
- Around line 90-99: Replace the fixed sleep in the PyPI publish workflow with a
check that waits until the newly published airbyte version is actually available
on PyPI before triggering the repository dispatch. Update the logic around the
“Wait for PyPI availability” step and the subsequent `repository-dispatch`
action so deployment only proceeds once the exact version can be resolved, and
apply the same gating to the preview path referenced by the shared deploy steps.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 0843f5b1-fe91-488d-bf34-ad3837a10867

📥 Commits

Reviewing files that changed from the base of the PR and between 2fabc84 and bb0a5fb.

📒 Files selected for processing (1)
  • .github/workflows/pypi_publish.yml

Comment thread .github/workflows/pypi_publish.yml Outdated
Comment thread .github/workflows/pypi_publish.yml Outdated
Co-Authored-By: AJ Steers <aj@airbyte.io>
Comment thread .github/workflows/pypi_publish.yml Outdated
@aaronsteers Aaron ("AJ") Steers (aaronsteers) changed the title ci(mcp): trigger cloud-mcp deploy after PyPI publish ci(mcp): trigger cloud-mcp-preview deploy after PyPI publish Jul 22, 2026
Copilot AI review requested due to automatic review settings July 22, 2026 23:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/pypi_publish.yml
@aaronsteers
Aaron ("AJ") Steers (aaronsteers) merged commit dbe4d48 into main Jul 22, 2026
25 checks passed
@aaronsteers
Aaron ("AJ") Steers (aaronsteers) deleted the devin/1782532058-cloud-mcp-deploy-trigger branch July 22, 2026 23:37
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.

3 participants