Heroku

Sorry-cypress installation instructions for Heroku

Basic sorry-cypress Setup

Click the button below to deploy the basic, in-memory, standalone director service to Heroku.

Full sorry-cypress kit on Heroku

  • Download and install the Heroku CLI

  • You must have Docker set up locally to continue

We'll create 3 separate Heroku applications - one for each service. Publicly available docker images of 3 services are available at:

The images are automatically updated on each release and tagged in accordance with GitHub releases.

sorry-cypress uses MongoDB as a persistence layer for storing and retrieving test results. We'll use a free hosted solution to run a managed instance of Atlas MongoDB.

Creating Heroku Application

Create 3 new Heroku application and give them appropriate names

heroku create <prefix>-director
heroku create <prefix>-api
heroku create <prefix>-dashboard

Run the commands to deploy director , API and Dashboard services

# Sign into Heroku Container Registry.
heroku container:login
# Pull services image
docker pull agoldis/sorry-cypress-director:latest
docker pull agoldis/sorry-cypress-api:latest
docker pull agoldis/sorry-cypress-dashboard:latest
# Tag service images as Heroku app image
docker tag agoldis/sorry-cypress-director:latest registry.heroku.com/<name_of_director_app>/web
docker tag agoldis/sorry-cypress-api:latest registry.heroku.com/<name_of_api_app>/web
docker tag agoldis/sorry-cypress-dashboard:latest registry.heroku.com/<name_of_dashboard_app>/web
# Push the images to Heroku Container Registry
docker push registry.heroku.com/<name_of_director_app>/web
docker push registry.heroku.com/<name_of_api_app>/web
docker push registry.heroku.com/<name_of_dashboard_app>/web
# Deploy the image
heroku container:release --app <name_of_director_app> web
heroku container:release --app <name_of_api_app> web
heroku container:release --app <name_of_dashboard_app> web

Setup MongoDB

Choose the MongoDB provider of your choice and obtain connection details. You will need to set the credentials for newly deployed services.

Heroku has a plenty of add-ons that allows attaching a MongoDB cluster. The recommended way is to attach a MongoDB add-on to director application and use the same credentials for API service.

All you'll need is the database name and the access credentials so you can fill the Heroku config variables as we'll see right after. So go ahead to the MongoDB Atlas docs, get your database running and grab that data!

Because the creation of this cluster is very straightforward and well-written in the docs, we'll not cover that here.

Setup Recordings Storage

Please refer to Storage Configuration instructions to configure Recordings Storage (failed tests screenshots and videos) and obtains credentials.

Setup director Service

# Use stateful mode and keep test results in MongoDB
EXECUTION_DRIVER="../execution/mongo/driver"
# Dashboard app url
DASHBOARD_URL=<dashboard_app_url>
# MongoDB database name
MONGODB_DATABASE=<atlas_database_name>
# MongoDB connection string
MONGODB_URI=<atlas_database_access_credentials>
# If you've set up S3 bucket for keeping screenshots
# Screenshots driver path
SCREENSHOTS_DRIVER="../screenshots/s3.driver"
# If you've set up minio for keeping screenshots
#SCREENSHOTS_DRIVER="../screenshots/minio"
# S3 Bucket name
S3_BUCKET="bucket_name"
# AWS region, default value is "us-east-1"
S3_REGION="us-east-1"
# AWS / MIIO credentials with write access to AWS S3 bucket
AWS_ACCESS_KEY_ID="key_id"
AWS_SECRET_ACCESS_KEY="secret_access"

Setup API Service

# MongoDB database name
MONGODB_DATABASE=<atlas_database_name>
# MongoDB connection string
MONGODB_URI=<atlas_database_access_credentials>

Setup Dashboard Service

# For communicating with API
GRAPHQL_SCHEMA_URL=<api_app_url>

Reconfigure cypress agents and try running some tests. You will see test results appear in the newly installed dashboard.