Every pull request gets a real environment.
A multi-service env per pull request. Builds itself. Tears itself down on merge.
git clone https://github.com/GoodRxOSS/lifecycle
// the shift
Stop sharing one staging.
Start shipping in parallel.
Without Lifecycle
- One shared staging. One queue at a time.
- Local works. Staging doesn't. The drift is the norm.
- Twelve services, wired by hand, for one PR.
- Old envs linger. Costs creep. Cleanup is manual.
With Lifecycle
- Each pull request opens its own isolated environment.
- Run the exact branch, against the exact dependencies.
- Multi-service topology builds itself from one config.
- Merge or close. The env is gone. No janitor needed.
// the path
From pull request to live URL in four steps.
No tickets, no provisioning calls, no cleanup chores.
- 01
Open a pull request
Push your branch. Lifecycle picks it up the moment the pull request opens.
- 02
Lifecycle builds it
Every service builds, deploys, and wires together from one config.
- 03
Test on a real URL
A unique URL lands in the pull request. Share with reviewers, QA, designers.
- 04
Merge, it’s gone
Close or merge. The env tears itself down. No stale envs, no orphan costs.
// what it does
Connected multi-service.
From one config.
Most preview tools start a container. Lifecycle starts the topology: frontend, APIs, queues, databases. Each on ephemeral DNS, wired like prod.
version: "1.0.0"
environment:
defaultServices:
- name: "api"
- name: "postgres"
services:
- name: "api"
github:
repository: "acme/api"
branchName: "main"
docker:
defaultTag: "main"
app:
dockerfilePath: "Dockerfile"
ports: [8080]
env:
DATABASE_URL: "postgresql://app:pw@{{{postgres_internalHostname}}}:5432/appdb"
- name: "postgres"
docker:
dockerImage: "postgres"
defaultTag: "15-alpine"
ports: [5432]
env:
POSTGRES_USER: "app"
POSTGRES_PASSWORD: "pw"
POSTGRES_DB: "appdb"- 01
Auto-deploy on pull request
Push, get an environment. No imperative steps.
- 02
Cross-repo composition
Compose services from multiple repos in one env.
- 03
Automatic cleanup
Merge or close › environment is reclaimed.
- 04
Webhooks & automation
Hook env events into your existing CI/CD.
- 05
Mission-control comments
URLs, status, logs delivered into the pull request.
- 06
Debug from chat
Triage build and deploy failures in a chat-driven agent session.
Self-hosted on your Kubernetes · brings its own controller · no SaaS lock-in
// pick a door
Run it, or build it with us.
01 · run it
Get it running on a sample repo.
Clone, follow the guide, watch your first pull request spin up its own env in under ten minutes.
02 · community
Star it, hang out, send pull requests.
Apache 2.0, built in the open.