1-click deploy previews for any application.Share progress with teammates and clients. Iterate faster.

image/svg+xml provisions a server in your AWS account starts your docker compose ...runs in a live environment. https://pr-10.my.pullpreview.com triggers a Github Action Your Pull Request...

Say goodbye to expensive, hard-to-maintain preview environments

Seeing the real thing running is always better than just looking at the code.

Preview environments are a valuable tool to share progress early, get feedback, and iterate on a feature faster.

However, in most organizations, there is only a handful of staging servers available to the developers, which are hard to keep in sync, maintain, and with complicated processes to make sure you don't step on someone else's code.

PullPreview solves this with ephemeral environments for any pull request or branches, just by adding a label from the GitHub UI.

The only requirements are: a GitHub repository, an app bootable with Docker Compose, and an AWS account with a few dollars to spend every month.

Everything runs straight from GitHub to your AWS servers, no intermediary involved.

Add a label. Done.

  1. To launch an environment, simply add the pullpreview label to a Pull Request:

  2. When the deployment is successful, a direct link to the environment is displayed. Pushing new code automatically triggers a new deployment:

  3. Merging or closing the Pull Request automatically destroys the environment and removes the pullpreview label:

Useful for the entire team

Product Owners
Interact with a new feature as it's built, give valuable feedback earlier, reduce wasted development time.
Developers
Show your work in progress, find bugs early, deliver the right feature.
Ops
Concentrate on high value tasks, not maintaining staging environments.
CTOs
Don't let your code run on third-party servers: your code always stays private on either GitHub's or your servers.

Installation

PullPreview requires one or more Docker Compose files to deploy your environment, and a GitHub Action workflow file that triggers the PullPreview action using AWS credentials to provision servers.

Below is a basic workflow file that allows SSH access for two users into the preview environments, as well as marking the master branch as always on:

# .github/workflows/pullpreview.yml
name: PullPreview
on:
  push:
  pull_request:
    types: [labeled, unlabeled, closed]

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
    - uses: actions/[email protected]
    - uses: pullpreview/[email protected]
      with:
        # Those GitHub users will have SSH access to the servers:
        admins: crohr,qbonnard
        # Alaways deploy the master branch:
        always_on: master
        # Specify compose file(s) to use:
        compose_files: docker-compose.yml
      env:
        AWS_ACCESS_KEY_ID: "${{ secrets.AWS_ACCESS_KEY_ID }}"
        AWS_SECRET_ACCESS_KEY: "${{ secrets.AWS_SECRET_ACCESS_KEY }}"
        AWS_REGION: "us-east-1"

You can be up and ready in 5 minutes!

For more details and demos, visit the Features page.

Follow our journey and win a license!

We're trying to make the best GitHub Action to deploy preview environments for any application. If you want to follow our progress, sign up to the newsletter below:

Psst: No spam ever, and every two weeks, one of the subscribers will win a free single repository license!