CI: Fix matching previous screenshot to use glob for evergreen Also fix variable name typo in screenshots.js
diff --git a/circle.yml b/circle.yml index 1aadb5c..713e024 100644 --- a/circle.yml +++ b/circle.yml
@@ -207,20 +207,13 @@ # Generate image diffs. - |- cd $CIRCLE_ARTIFACTS/imgs/ - for file in $(ls PINNED*); do - prev=PREV_$file - metric_diff=$(compare -metric AE -compose src $prev $file raw_diff.png) - composite -alpha on raw_diff.png $prev DIFF_$file + for file in $(ls *.png | grep -v '^PREV_'); do + # if evergreen browser, browser version of previous screenshot may not match, + # so replace previous browser version with glob + prev=PREV_"$(sh -c "ls $(echo $file | sed 's/[^_]*_(evergreen)/*/')")" + metric_diff=$(compare -metric AE -compose src $prev $file RAW_DIFF_$file) + echo "Metric diff for $file: $metric_diff" + composite -alpha on RAW_DIFF_$file $prev DIFF_$file done - - - |- - cd $CIRCLE_ARTIFACTS/imgs/ - for file in $(ls EVERGREEN*); do - prev=$(ls PREV_$file*) - metric_diff=$(compare -metric AE -compose src $prev $file raw_diff.png) - composite -alpha on raw_diff.png $prev DIFF_$file - done - - - rm $CIRCLE_ARTIFACTS/imgs/raw_diff.png post: - killall --wait sc; true # wait for Sauce Connect to close the tunnel; ignore errors since it's just cleanup
diff --git a/script/screenshots.js b/script/screenshots.js index bf2525c..08d743f 100644 --- a/script/screenshots.js +++ b/script/screenshots.js
@@ -102,12 +102,12 @@ // the easy case: Firefox and IE return a screenshot of the entire webpage if (cfg.browserName === 'Firefox' || cfg.browserName === 'Internet Explorer') { - return browserDriver.saveScreenshot(baseDir + '/imgs/' + filename + '.png') + return browserDriver.saveScreenshot(baseDir + '/imgs/' + fileName + '.png') .then(willLog(sessionName, 'saveScreenshot')) // the hard case: for Chrome, Safari, and Edge, scroll through the page and // take screenshots of each piece; circle.yml will stitch them together } else { - var piecesDir = baseDir + '/imgs/pieces/' + filename + '/'; + var piecesDir = baseDir + '/imgs/pieces/' + fileName + '/'; fs.mkdirSync(piecesDir); var scrollTop = 0;