Repository navigation
ci: forward the /prerelease build source SHA to the Cloud MCP preview deploy - #1468
Conversation
… deploy Co-Authored-By: AJ Steers <aj@airbyte.io>
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting This PyAirbyte VersionYou 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/1794513088-prerelease-build-sha' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1794513088-prerelease-build-sha'PR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful ResourcesCommunity SupportQuestions? Join the #pyairbyte channel in our Slack workspace. |
Code coverage overviewLanguages: Python Python / code-coverage/pytest-no-creds
View coverage of the 10 most impacted files.
Python / code-coverage/pytest
View coverage of the 10 most impacted files.
Python / code-coverage/pytest-unit
Line coverage data for the release-candidate/v1 branch is not yet available. View coverage of the 10 most covered files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
08c407e
into
release-candidate/v1
There was a problem hiding this comment.
🔵 Needs a closer look
The downstream PR was unavailable (404) and end-to-end deployment is untested, requiring human confirmation of SHA/lock compatibility and coordinated merge and rollout order.
No open issues 🎉
What changed in this PR
This PR forwards the exact source commit of /prerelease builds to the Cloud MCP preview deployment, allowing it to use that commit’s locked dependencies while installing the published dev wheel.
Changes:
- Capture the checked-out build SHA and pass it to the reusable deployment workflow.
- Require a full lowercase commit SHA for prerelease deployments and include it only in preview dispatch payloads.
- Display the lock source SHA in the deployment summary, leaving release and production payloads unchanged.
| File | Description |
|---|---|
.github/workflows/pypi_publish.yml |
Capture the build source SHA and forward it to the deployment workflow. |
.github/workflows/deploy_cloud_mcp.yml |
Validate the prerelease SHA, include it in preview payloads, and report it in the summary. |
Review effort: Balanced
Devin Review🟢 Devin Review found nothing to fix · View findings |
Overview
👉 TL;DR:
/prereleasedev builds now tell the Cloud MCP preview deploy exactly which commit they were built from, so the deploy can install that commit's locked dependencies instead of resolving them. Dev wheels have no release lock file to download, so without this the preview deploy would have no lock to install.Specifically,
pypi_publish.ymlrecordsgit rev-parse HEADof thegit_refcheckout, anddeploy_cloud_mcp.ymltakes a newpyairbyte-source-shainput and adds it to the previewrepository_dispatchpayload ascloud-mcp-pyairbyte-source-sha.Pairs with:
Changes
pypi_publish.yml: newResolve build source SHAstep after theworkflow_dispatchcheckout, exposed as thepublish_to_pypijob outputsource_shaand passed todeploy_cloud_mcp.yml. It is the commitgit_refresolved to, notGITHUB_SHA, which for this dispatch ismain(the workflow runs frommainfor trusted publishing).deploy_cloud_mcp.yml: new optionalworkflow_callinputpyairbyte-source-sha. Fortrigger-type=pr-prereleaseit must be a 40-character lowercase hex SHA or the run fails; for every other trigger type it is ignored.cloud-mcp-previewpayload carriescloud-mcp-pyairbyte-source-shaonly when a SHA was resolved. Thecloud-mcp-pyairbyte-requirementstaysairbyte==<dev version>, so the published wheel is still what gets installed. The internalcloud-mcpand production payloads are unchanged.Contract with airbyte-ops-mcp
The Ops deploy exports
uv export --locked --format pylock.toml --no-dev --no-emit-project --extra datadogfrom that SHA, installs it, then installs the pinned dev wheel with--no-deps. It accepts the SHA only for previews with a.devNpin; release pins still need the release's publishedpylock.toml.Risks
/prereleasepreview deploys fail closed on the missing SHA until this PR lands.Test plan
actionlinton both workflows.Resolve Variablesscript locally:pr-prereleasewith a full SHA outputs it; an empty or malformed SHA fails with the error;rc-releaseoutputs an emptysource_shaeven if a SHA is passed.cloud-mcp-pyairbyte-source-sha; without one, both payloads are byte-identical to today's./prereleaseon a PR after this merges.Requested by Aaron ("AJ") Steers (@aaronsteers).
Link to Devin session: https://app.devin.ai/sessions/6e2ae2a988f74dd9af69b2e8eaadd141
Link to Bot: https://app.devin.ai/org/airbytehq/bots/9b3f0480dd6148c9aba17702f8349056
Open in Devin Desktop: https://app.devin.ai/desktop/session/6e2ae2a988f74dd9af69b2e8eaadd141?variant=devin
MCP Guru Devin - By AJ opened this PR for AJ
Implemented in Pin Cloud MCP image to release pylock.toml · Review with Devin