Skip to content

feat(deploy): Revamp deploy flow#5944

Merged
Aradhya-Tripathi merged 59 commits intodevelopfrom
perf-create-deploy
Apr 10, 2026
Merged

feat(deploy): Revamp deploy flow#5944
Aradhya-Tripathi merged 59 commits intodevelopfrom
perf-create-deploy

Conversation

@Aradhya-Tripathi
Copy link
Copy Markdown
Contributor

@Aradhya-Tripathi Aradhya-Tripathi commented Mar 27, 2026

  • Borrowed and integrated workflow engine from https://github.com/frappe/press-agent-manager
  • Consolidated validation build and bench jobs from all over the place.
  • Currently residing in a Workflow doctype
  • Figure out the retry logic.
  • Figure out auto build retry logic
  • Figure out auto bench retry logic
  • Add support for validation failure notifications
  • Remove update available button till the pipeline execution is not in it's terminal state
  • Figure out design and UI for new deploy display

fixes: #5939

All the deployment flow is now marked in a single doctype, Managed by the Workflow Engine.

image

Internal steps are shown here as well

image

While the Press Workflow is the execution brain, the state manager for deploy is the Release Pipeline doctype

image

Should effectively get rid of long running transactions in the request cycle when a new deploy is created, allowing for instant deploy creations and avoiding random lock-wait timeout issues due to lock contention in long running transactions. Should also show the retry logic with a single source of truth Release Pipeline doctype which will not reach terminal state until all the retries (Build & Bench) have reached their individual terminal states.

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 9, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 0.00%. Comparing base (51dc13d) to head (290a884).
⚠️ Report is 61 commits behind head on develop.

Additional details and impacted files
@@       Coverage Diff       @@
##   develop   #5944   +/-   ##
===============================
===============================

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Aradhya-Tripathi
Copy link
Copy Markdown
Contributor Author

Remove a test,

test_deploy_and_update_fn_fails_without_release_argument

Quite ambiguous in nature, we only throw validation error when it's a in-place update, otherwise we let sites, be empty

def before_save(self):
if not self.is_inplace_update:
return
site = self.sites[0].site # validation should throw if no sites
self.bench = frappe.get_value("Site", site, "bench")

Secondary this test was only passing since we also throw, the same validation error in;

def validate_app_hashes(apps: list[dict[str, str]]):

@Aradhya-Tripathi Aradhya-Tripathi merged commit 9a9cc1c into develop Apr 10, 2026
20 of 23 checks passed
@Aradhya-Tripathi Aradhya-Tripathi deleted the perf-create-deploy branch April 10, 2026 17:46
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.

2 participants