Whatever you do, it boils down to getting this data onto the test machine somehow. There’s no way around unless you run part of the logic on some other infrastructure.
So – use any measures that would allow you to reduce the amount of data transferred over the wire and/or maximize the speed:
- Aggressively compress/otherwise optimize the data
- Move the storage closer to Travis’ data centers if that makes a difference (they are in the East US AFAIK, trace their IPs)
- Transfer the data in chunks in parallel with testing
- Split testing into multiple jobs and transfer only part of the data to each
For Travis’ cache, tens of gigabytes are a bit too much. It will necessitate using a prolonged
timeout: and may not even be any faster than transferring from your storage. In any case, your logic has to be able to work without the cache, too, anyway.
Due to a long transfer, you may need to log progress so as not to trigger automatic termination of a build due to no output for 10 minutes.