It initializes Carpet::timelevels with Carpet::maxtimelevels before the later has been set. The attached patch moves the initialization of timelevels after maxtimelevels. Not really pretty though since it moves it away from where timelevel is initialized.
Somewhat related: shouldn't Jenkins send out email to the Users list if the tests fail? They do indeed fail but with the "no files were created" error (https://build.barrywardell.net/job/EinsteinToolkitProposed/541/console). Maybe that is the reason why no email are send or error detected?