This repo demonstrates deploying a Preevy environment per pull request. It also shows integration with GitHub deployments and environments.
- Preevy will provision an environment on a Google Cloud VM with this PR content.
- A comment with the environment URLs will be posted on the PR.
- A GH environment will be created (named
pr-NNN, where NNN is the PR number) and shown on the repo main page.
- Preevy will delete the GCE VM.
- The PR comment will be updated to reflect the fact that the Preevy environment no longer exists.
- The GH environment will be deleted (optional, see below).
- Create a preevy profile using the Preevy init command and store it in a Google Cloud Storage bucket.
- Create the
PREEVY_PROFILE_URLGitHub Actions environment variable and set it to the Preevy profile URL. - Create a GCE service account, make sure it has the proper permissions to access the GKE cluster. Download its credentials JSON file and paste it into the GitHub Actions secret
PREEVY_SA_KEY. - Copy the
preevy_up.yamlandpreevy_down.yamlGitHub Actions workflows to your repo.
To delete GH deployments and environments on PR closure, you need to setup a private GH App which will be used by the GHA flows. This is beacuse the default GITHUB_TOKEN does not have enough permissions to delete those resources.
To disable this feature, remove the last steps of the preevy_down.yaml workflow as documented in the file itself. You will have to remove the environments manually from the repo's "Environments" page.
After setting up the GH app:
- Set the GHA secret
GH_APP_PRIVATE_KEYto the app private key. - Set the GHA var
GH_APP_IDto the app id. - Install the app at the repo.
The demo Compose app in this repo is taken from the react-express-mysql sample Compose app from the Awesome Compose project by Docker. See the app README for details.



