aws-amplify / aws-amplify/amplify-hosting

Support separating Build and Deploy phases (or pausing before Deploy) to allow pre-building

Open
#4,110 1 comment 3 reactions 0 assignees View on GitHub
feature-request
Dominant language
Dockerfile
Stars
481
Forks
123
PR merge metrics
No merged PRs in 30d

Description

### Before opening, please confirm:

- [x] I have checked to see if my question is addressed in the [FAQ](https://github.com/aws-amplify/amplify-hosting/blob/master/FAQ.md).
- [x] I have [searched for duplicate or closed issues](https://github.com/aws-amplify/amplify-hosting/issues?q=is%3Aissue+).
- [x] I have removed any sensitive information from my code snippets and submission.

### Amplify Hosting feature

Deployments

### Is your feature request related to a problem? Please describe:

Currently, when hosting SSR applications (compute primitive) connected to a Git repository on Amplify Hosting, the `StartJob` API executes the build and deploy steps as a single uninterrupted job. It is not possible to execute the build phase first, retain the artifact, and then trigger only the deployment phase at a later time.

In our team's weekly release process, we want to minimize waiting time on release days. On other platforms where build and deploy can be separated, we follow this workflow:
- **Release Day - 1:** Run the build phase and pause the CD pipeline.
- **Release Day:** Resume the pipeline to execute only the deployment phase (skipping the build waiting time).

With Amplify Hosting, we are forced to run the full build during the actual release window, which increases release time and operational overhead.

### Describe how you'd like this feature to work

We would like Amplify Hosting to support splitting or pausing the deployment process in one of the following ways:

1. **Explicit separation of Build and Deploy phases:** Provide an option or API to trigger a "Build-only" job, retain the generated artifact, and subsequently trigger a "Deploy-only" job using that artifact.
2. **Approval/Pause step between Build and Deploy:** Allow the pipeline to automatically pause *after* the build phase finishes, enabling us to manually trigger/approve the actual deployment on release day.

### Describe alternatives you've considered

We considered performing the build entirely on an external CI/CD tool (e.g., GitHub Actions or CircleCI) and deploying via `CreateDeployment` / `StartDeployment` APIs. However, we prefer using Amplify Hosting's managed build environment for SSR (compute primitive) applications rather than offloading the build step elsewhere.

### Additional context

We reached out to AWS Support regarding this workflow, and they confirmed that `StartJob` currently treats build and deploy as a single atomic job. While Issue #103 touches on manual triggers and approvals, our specific request focuses on separating the phases to pre-build artifacts in advance for scheduled releases.

Contributor guide

Open the contributing guide

Research direction

Start by reading the StartJob, CreateDeployment, and StartDeployment API behavior described in the issue, then compare Issue #103 for related manual-trigger and approval work. Define how a build-only job would retain an artifact and how a later deploy-only or approval step would use it; done means the build and deploy phases can be scheduled separately without rebuilding.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws
Domain
ci-cd, cloud, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.