verilator/ci
Geza Lore 6ddd92c0a1
Travis: Use workspaces and per job persistent ccache (#2399)
Change the Travis builds to use workspaces and persistent ccache

We proceed in 2 stages (as before, but using workspaces for
persistence):
1. In the 'build' stage, we clone the repo, build it and
   save the whole checkout ($TRAVIS_BUILD_DIR) as a workspace
2. In the 'test' stage, rather than cloning the repo, multiple jobs
   pull down the same workspace we built to run the tests from

This enables:
- Reuse of the build in multiple test jobs (this is what we used the Travis
  cache for before)
- Each job having a separate persistent Travis cache, which now only
  contains the ccache. This means all jobs, including 'build' and 'test'
  jobs can make maximum use of ccache across runs. This drastically cuts
  down build times when the ccache hits, which is very often the case for
  'test' jobs. Also, the separate caches only store the objects build by
  the particular job that owns the cache, so we can keep the per job
  ccache small.

If the commit message contains '[travis ccache clear]', the ccache will
be cleared at the beginning of the build. This can be used to test build
complete within the 50 minute timeout imposed by Travis, even without a
persistent ccache.
2020-06-03 21:10:13 +01:00
..
docker [docker] Unify docker files (#2371) 2020-05-26 20:38:43 +02:00
travis-ccache-maint.bash Travis: Use workspaces and per job persistent ccache (#2399) 2020-06-03 21:10:13 +01:00
travis-ccache-size.bash Travis: Use workspaces and per job persistent ccache (#2399) 2020-06-03 21:10:13 +01:00
travis-install.bash Travis: Use workspaces and per job persistent ccache (#2399) 2020-06-03 21:10:13 +01:00
travis-script.bash Travis: Use workspaces and per job persistent ccache (#2399) 2020-06-03 21:10:13 +01:00