Sign inSign up

emcniece/percysnap

By emcniece

•Updated almost 7 years ago

Parameterized screenshot container for percy.io

Image
0

3.3K

emcniece/percysnap repository overview

⁠PercySnap - Automated Visual Regression + Notifications

Github version Docker Stars Docker Pulls

Automate website screenshot uploads to Percy.io⁠ for visual regression testing with this parameterized Docker container. Designed to work locally or in remote clusters. Enable Slack notifications to get pinged when a site changes.

⁠Usage

⁠Docker CLI

Set environment variables and run:

docker run -d \
  -e PERCY_TOKEN=xxx \
  -e PERCY_TARGET_URL=https://google.com \
  -e CRON_TIME=daily \
  --name percysnap

docker logs -f percysnap
⁠Docker-Compose

Create .env from the sample, then run with Docker Compose:

docker pull emcniece/percysnap:latest
cp .env.sample .env
# ... edit .env
docker-compose up

⁠Behaviour

  • Runs a snapshot on container start
  • Reads CRON_TIME env for job scheduling
  • CRON_TIME can be set to "daily" for a random time
  • Scheduled runs are managed by node-cron⁠

⁠Development

npm install
node index.js

⁠New Project Automation

The new-project.js script uses Puppeteer to automate the bulk creation of projects. Dumps a list of project names and PERCY_TOKENs.

Populate the email, password, and org variables in .env and execute. Requires a Percy account that has the email/password login method enabled.

node new-project.js project1 project2 ...
# { 'project1': 'xxx', 'project2': 'yyy' }

⁠Todo

  • Optimize image, reduce size
  • Split PERCY_WAIT on comma to allow multiple ready conditions
  • Log waits for visibility
  • Epic: Handle multiple projects
    • Parse optional JSON config file
      • projects: [{"percy_token": "xxx", "percy_target_url": "xxx", "percy_wait": "1000"}]
    • Parse optional ENV vars
      • PERCY_TOKEN1... PERCY_TOKEN(N)
      • PERCY_TARGET_URL1... PERCY_TARGET_URL(N)
      • PERCY_WAIT1... PERCY_WAIT(N)
    • Deep-merge ENV with JSON config

Tag summary

Content type

Image

Digest

Size

306 MB

Last updated

almost 7 years ago

docker pull emcniece/percysnap